{"id":"CVE-2026-94109","aliases":[],"cve":{"records":[{"id":"CVE-2026-94109","source":"VulnCheck","state":"PUBLISHED","reasons":[],"replacements":[],"disputed":false,"unsupportedWhenAssigned":false,"reserved":"2026-09-20T11:20:53.683Z","published":"2026-09-20T11:33:55.754Z","modified":"2026-10-29T12:27:38.736Z"}],"publishers":[{"name":"VulnCheck","role":"CNA","organizationId":"83251b91-4cc7-4094-a5c7-464a1b83ea10","modified":"2026-10-29T12:27:38.736Z"},{"name":"CISA-ADP","role":"ADP","organizationId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","modified":"2026-09-24T11:58:07.868Z"}],"references":[{"url":"https://blog.evan.lat/posts/openeq","tags":["technical-description","exploit"],"source":"VulnCheck"},{"url":"https://github.com/openequella/openEQUELLA/commit/d6e165afc986f8a3ed912cdb367d5ad8c1eeab5c","tags":["patch"],"source":"VulnCheck"},{"url":"https://github.com/openequella/openEQUELLA/releases/tag/2026.1.0","tags":["release-notes"],"source":"VulnCheck"},{"url":"https://github.com/openequella/openEQUELLA/security/advisories/GHSA-62g6-mmp6-9wv2","tags":["vendor-advisory"],"source":"VulnCheck"},{"url":"https://www.vulncheck.com/advisories/openequella-authenticated-stored-ssti-via-freemarkerportletrenderer","tags":["third-party-advisory"],"source":"VulnCheck"}],"weaknesses":[{"id":"CWE-1336","description":"Improper Neutralization of Special Elements Used in a Template Engine","source":"VulnCheck"}],"applicability":[],"prioritization":[{"source":"CISA-ADP","type":"SSVC","role":"CISA Coordinator","timestamp":"2026-09-24T11:57:50.540958Z","decisions":[{"name":"Exploitation","value":"poc"},{"name":"Automatable","value":"no"},{"name":"Technical Impact","value":"total"}]}]},"title":"openEQUELLA < 2026.1.0 Authenticated Stored SSTI via FreemarkerPortletRenderer","titleSource":"VulnCheck","descriptionSource":"VulnCheck","description":"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.","score":8.6,"severity":"high","published":"2026-09-20T11:33:55.754Z","modified":"2026-10-29T12:27:38.736Z","withdrawn":false,"knownExploited":false,"affected":[],"products":[{"vendor":"openequella","name":"openEQUELLA","platforms":[],"versions":[{"version":"0","status":"affected","lessThan":"2026.1.0","versionType":"semver"},{"version":"2026.1.0","status":"unaffected","versionType":"semver"}],"defaultStatus":"unaffected","packageURL":"pkg:github/openequella/openEQUELLA","cpes":[],"source":"VulnCheck","url":"https://www.cve.org/CVERecord?id=CVE-2026-94109"}],"remediation":[{"text":"Deployments that can't upgrade immediately should firewall or VPN the /invoker/* endpoints and restrict them to only those who genuinely need access.","source":"VulnCheck","url":"https://www.cve.org/CVERecord?id=CVE-2026-94109"}],"references":["https://blog.evan.lat/posts/openeq","https://github.com/openequella/openEQUELLA/commit/d6e165afc986f8a3ed912cdb367d5ad8c1eeab5c","https://github.com/openequella/openEQUELLA/releases/tag/2026.1.0","https://github.com/openequella/openEQUELLA/security/advisories/GHSA-62g6-mmp6-9wv2","https://www.vulncheck.com/advisories/openequella-authenticated-stored-ssti-via-freemarkerportletrenderer"],"sources":[{"name":"CVE","id":"CVE-2026-94109","modified":"2026-10-29T12:27:38.736Z","url":"https://www.cve.org/CVERecord?id=CVE-2026-94109"}],"assessments":[{"source":"VulnCheck","vector":"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","score":8.6},{"source":"VulnCheck","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H","score":8}],"sourceAffected":[],"observedAt":"2026-10-29T14:49:00.099Z","kev":{"status":"not-listed","checkedAt":"2026-10-31T12:15:32.680Z"},"coverage":[{"source":"NVD","status":"available","checkedAt":"2026-10-29T12:50:31.452Z","attemptedAt":"2026-10-29T12:50:31.452Z"},{"source":"GHSA","status":"available","checkedAt":"2026-10-29T12:50:31.452Z","attemptedAt":"2026-10-29T12:50:31.452Z"},{"source":"EUVD","status":"available","checkedAt":"2026-10-29T12:50:31.452Z","attemptedAt":"2026-10-29T12:50:31.452Z"},{"source":"EPSS","status":"available","checkedAt":"2026-10-29T12:50:31.452Z","attemptedAt":"2026-10-29T12:50:31.452Z"}],"evidence":[{"source":"GitHub Advisory Database","id":"GHSA-w599-5qgp-f3cf","url":"https://github.com/advisories/GHSA-w599-5qgp-f3cf","modified":"2026-09-23T15:30:39Z","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","checkedAt":"2026-10-29T12:50:31.452Z"},{"source":"ENISA EUVD","id":"EUVD-2026-83731","url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-83731","modified":"Sep 26, 2026, 1:30:05 PM","score":8.6,"vector":"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","checkedAt":"2026-10-29T12:50:31.452Z"},{"source":"NVD","id":"CVE-2026-94109","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-94109","modified":"2026-09-24T12:17:13.817","score":8.6,"vector":"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","checkedAt":"2026-10-29T12:50:31.452Z"},{"source":"NVD","id":"CVE-2026-94109","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-94109","modified":"2026-09-24T12:17:13.817","score":8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H","checkedAt":"2026-10-29T12:50:31.452Z"},{"source":"FIRST EPSS","id":"CVE-2026-94109","url":"https://www.first.org/epss/","probability":0.00778,"percentile":0.55739,"date":"2026-10-28","checkedAt":"2026-10-29T12:50:31.452Z"}],"aiSummary":{"text":"openEQUELLA before version 2026.1.0 has an authenticated stored server-side template injection vulnerability, allowing non-guest users to inject malicious FreeMarker payloads. The vulnerability occurs in FreemarkerPortletRenderer.renderHtml() and may execute in the application server process context.","model":"@cf/meta/llama-3.3-70b-instruct-fp8-fast","generatedAt":"2026-10-30T09:27:15.796Z","sources":[{"name":"CVE","url":"https://www.cve.org/CVERecord?id=CVE-2026-94109"}]}}