CVE-2026-94109 json
openEQUELLA < 2026.1.0 Authenticated Stored SSTI via FreemarkerPortletRenderer
published last mo. modified 13d ago also EUVD-2026-83731 , GHSA-62g6-mmp6-9wv2
Unreviewed: the maintainers' own advisory
Published by the maintainers on their GitHub repository openequella/openEQUELLA. GitHub has not reviewed it into the GitHub Advisory Database, so the affected packages and versions are the maintainers' word. Read the full advisory on GitHub.
- cvss
- 8.0
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.8%
- EPSS 0.8% chance of exploitation in 30 days, percentile 56%
- public exploits
- 0
- none known
Summary
openEQUELLA before 2026.1.0 contains an authenticated stored server-side template injection vulnerability in FreemarkerPortletRenderer.renderHtml() that allows any authenticated non-guest user to achieve remote code execution by storing a malicious FreeMarker payload through a POST request to the RemotePortletService invoker endpoint. The markup field from stored portlet configuration is passed directly to custFactory.createResult() without a TemplateClassResolver restriction or FreeMarker sandboxing in BasicConfiguration, leaving built-ins such as ?new and freemarker.template.utility.Execute available, causing the payload to execute in the application server process context when any user renders a dashboard containing the affected portlet.
Patch / fix
- openequella openEQUELLA 2026.1.0
Is CVE-2026-94109 in your stack? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- last mo.
Exploit prediction
0.78% chance of exploitation in the next 30 days, higher than 56% of all scored CVEs (FIRST EPSS, 2026-11-11).
Exploits and checks
- blog.evan.lat https://blog.evan.lat/posts/openeq referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.6 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N |
| CNA | 3.1 | 8.0 | CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H |
| CNA | 4.0 | 8.6 | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected products
- openequella openEQUELLA
Classification
- Weakness
-
- CWE-1336 Improper Neutralization of Special Elements Used in a Template Engine
References
-
github.com
/openequella/openEQUELLA/commit/d6e165afc986f8a3ed912cdb367d5ad8c1eeab5c
patch
-
blog.evan.lat
/posts/openeq
technical-description, exploit
-
github.com
/openequella/openEQUELLA/security/advisories/GHSA-62g6-mmp6-9wv2
vendor-advisory, advisory
-
github.com
/openequella/openEQUELLA/releases/tag/2026.1.0
release-notes
-
vulncheck.com
/advisories/openequella-authenticated-stored-ssti-via-freemarkerportletrenderer
third-party-advisory
Sources
- CVE List CVE-2026-94109
- NVD CVE-2026-94109
- Maintainer advisory GHSA-62g6-mmp6-9wv2
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
The maintainers of openequella/openEQUELLA published their own advisory on GitHub. Reviewed sources take precedence over it.