CVE-2026-84939
Apache FreeMarker, Apache FreeMarker: A malformed locale may be exploitable for path traversal attacks
Path traversal vulnerability in Apache FreeMarker template loading mechanism, if the attacker can specify an arbitrary malformed locale identifier to FreeMarker, and the localized lookup configuration setting is enabled (it's by default enabled).
This issue affects Apache FreeMarker from 2.2.0 through 2.3.34.
Users are recommended to upgrade to version 2.3.35. Disabling localized lookup in previous versions also mitigates this.
Note that even in versions affected by this vulnerability, the files that can be loaded remain restricted by the TemplateLoader that FreeMarker is configured to use. In particular, FileTemplateLoader prevents attempts to traverse outside the baseDir specified in its constructor. Other TemplateLoader implementations may allow access outside their designated base directory, but they are still constrained by the underlying storage mechanism—for example, a loader wrapping a Java class loader can only access resources that the class loader can load, while one wrapping a web application context can only access resources available through that context.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used 9.1
Apache FreeMarker, Apache FreeMarker: A malformed locale may be exploitable for path traversal attacks
Path traversal vulnerability in Apache FreeMarker template loading mechanism, if the attacker can specify an arbitrary malformed locale identifier to FreeMarker, and the localized lookup configuration setting is enabled (it's by default enabled).
This issue affects Apache FreeMarker from 2.2.0 through 2.3.34.
Users are recommended to upgrade to version 2.3.35. Disabling localized lookup in previous versions also mitigates this.
Note that even in versions affected by this vulnerability, the files that can be loaded remain restricted by the TemplateLoader that FreeMarker is configured to use. In particular, FileTemplateLoader prevents attempts to traverse outside the baseDir specified in its constructor. Other TemplateLoader implementations may allow access outside their designated base directory, but they are still constrained by the underlying storage mechanism—for example, a loader wrapping a Java class loader can only access resources that the class loader can load, while one wrapping a web application context can only access resources available through that context.
- Record
CVE-2026-84939- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-23
- Updated
- 2026-11-02
EUVDEUVD-2026-75251 9.1
Path traversal vulnerability in Apache FreeMarker template loading mechanism, if the attacker can specify an arbitrary malformed locale identifier to FreeMarker, and the localized lookup configuration setting is enabled (it's by default enabled).
This issue affects Apache FreeMarker from 2.2.0 through 2.3.34.
Users are recommended to upgrade to version 2.3.35. Disabling localized lookup in previous versions also mitigates this.
Note that even in versions affected by this vulnerability, the files that can be loaded remain restricted by the TemplateLoader that FreeMarker is configured to use. In particular, FileTemplateLoader prevents attempts to traverse outside the baseDir specified in its constructor. Other TemplateLoader implementations may allow access outside their designated base directory, but they are still constrained by the underlying storage mechanism—for example, a loader wrapping a Java class loader can only access resources that the class loader can load, while one wrapping a web application context can only access resources available through that context.
- Record
EUVD-2026-75251- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-27j2-h3m2-8237 9.1
Apache FreeMarker template loading mechanism vulnerable to path traversal
Path traversal vulnerability in Apache FreeMarker template loading mechanism, if the attacker can specify an arbitrary malformed locale identifier to FreeMarker, and the localized lookup configuration setting is enabled (it's by default enabled).
This issue affects Apache FreeMarker from 2.2.0 through 2.3.34.
Users are recommended to upgrade to version 2.3.35. Disabling localized lookup in previous versions also mitigates this.
Note that even in versions affected by this vulnerability, the files that can be loaded remain restricted by the TemplateLoader that FreeMarker is configured to use. In particular, FileTemplateLoader prevents attempts to traverse outside the baseDir specified in its constructor. Other TemplateLoader implementations may allow access outside their designated base directory, but they are still constrained by the underlying storage mechanism—for example, a loader wrapping a Java class loader can only access resources that the class loader can load, while one wrapping a web application context can only access resources available through that context.
- Record
GHSA-27j2-h3m2-8237- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-23
- Updated
- 2026-11-02
NVD 9.1
Path traversal vulnerability in Apache FreeMarker template loading mechanism, if the attacker can specify an arbitrary malformed locale identifier to FreeMarker, and the localized lookup configuration setting is enabled (it's by default enabled).
This issue affects Apache FreeMarker from 2.2.0 through 2.3.34.
Users are recommended to upgrade to version 2.3.35. Disabling localized lookup in previous versions also mitigates this.
Note that even in versions affected by this vulnerability, the files that can be loaded remain restricted by the TemplateLoader that FreeMarker is configured to use. In particular, FileTemplateLoader prevents attempts to traverse outside the baseDir specified in its constructor. Other TemplateLoader implementations may allow access outside their designated base directory, but they are still constrained by the underlying storage mechanism—for example, a loader wrapping a Java class loader can only access resources that the class loader can load, while one wrapping a web application context can only access resources available through that context.
- Record
CVE-2026-84939- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-23
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-84939 9.1
Path traversal vulnerability in Apache FreeMarker template loading mechanism, if the attacker can specify an arbitrary malformed locale identifier to FreeMarker, and the localized lookup configuration setting is enabled (it's by default enabled). This issue affects Apache FreeMarker from 2.2.0 through 2.3.34. Users are recommended to upgrade to version 2.3.35. Disabling localized lookup in previous versions also mitigates this. Note that even in versions affected by this vulnerability, the files that can be loaded remain restricted by the TemplateLoader that FreeMarker is configured to use. In particular, FileTemplateLoader prevents attempts to traverse outside the baseDir specified in its constructor. Other TemplateLoader implementations may allow access outside their designated base directory, but they are still constrained by the underlying storage mechanism—for example, a loader wrapping a Java class loader can only access resources that the class loader can load, while one wrapping a web application context can only access resources available through that context.
- Record
DEBIAN-CVE-2026-84939- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVGHSA-27j2-h3m2-8237 9.1
Apache FreeMarker template loading mechanism vulnerable to path traversal
Path traversal vulnerability in Apache FreeMarker template loading mechanism, if the attacker can specify an arbitrary malformed locale identifier to FreeMarker, and the localized lookup configuration setting is enabled (it's by default enabled).
This issue affects Apache FreeMarker from 2.2.0 through 2.3.34.
Users are recommended to upgrade to version 2.3.35. Disabling localized lookup in previous versions also mitigates this.
Note that even in versions affected by this vulnerability, the files that can be loaded remain restricted by the TemplateLoader that FreeMarker is configured to use. In particular, FileTemplateLoader prevents attempts to traverse outside the baseDir specified in its constructor. Other TemplateLoader implementations may allow access outside their designated base directory, but they are still constrained by the underlying storage mechanism—for example, a loader wrapping a Java class loader can only access resources that the class loader can load, while one wrapping a web application context can only access resources available through that context.
- Record
GHSA-27j2-h3m2-8237- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-23
- Updated
- 2026-11-02
Show 8 moreShow less
OSVUBUNTU-CVE-2026-84939 9.1
Path traversal vulnerability in Apache FreeMarker template loading mechanism, if the attacker can specify an arbitrary malformed locale identifier to FreeMarker, and the localized lookup configuration setting is enabled (it's by default enabled). This issue affects Apache FreeMarker from 2.2.0 through 2.3.34. Users are recommended to upgrade to version 2.3.35. Disabling localized lookup in previous versions also mitigates this. Note that even in versions affected by this vulnerability, the files that can be loaded remain restricted by the TemplateLoader that FreeMarker is configured to use. In particular, FileTemplateLoader prevents attempts to traverse outside the baseDir specified in its constructor. Other TemplateLoader implementations may allow access outside their designated base directory, but they are still constrained by the underlying storage mechanism—for example, a loader wrapping a Java class loader can only access resources that the class loader can load, while one wrapping a web application context can only access resources available through that context.
- Record
UBUNTU-CVE-2026-84939- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVCLSA-2026-1791549508No score
TuxCare security update for org.freemarker:freemarker (1 CVE)
TuxCare rebuilt org.freemarker:freemarker to address 1 CVE. Fixed in 2.3.34-tuxcare.1.
- Record
CLSA-2026-1791549508- Updated
- 2026-11-02
OSVCLSA-2026-1791957648No score
TuxCare security update for org.freemarker:freemarker (1 CVE)
TuxCare rebuilt org.freemarker:freemarker to address 1 CVE. Fixed in 2.3.33-tuxcare.1.
- Record
CLSA-2026-1791957648- Updated
- 2026-11-02
OSVCLSA-2026-1791959281No score
TuxCare security update for org.freemarker:freemarker (1 CVE)
TuxCare rebuilt org.freemarker:freemarker to address 1 CVE. Fixed in 2.3.32-tuxcare.1.
- Record
CLSA-2026-1791959281- Updated
- 2026-11-02
OSVCLSA-2026-1793128416No score
TuxCare security update for org.freemarker:freemarker (1 CVE)
TuxCare rebuilt org.freemarker:freemarker to address 1 CVE. Fixed in 2.3.29-tuxcare.1.
- Record
CLSA-2026-1793128416- Updated
- 2026-11-02
OSVCLSA-2026-1793128508No score
TuxCare security update for org.freemarker:freemarker (1 CVE)
TuxCare rebuilt org.freemarker:freemarker to address 1 CVE. Fixed in 2.3.30-tuxcare.1.
- Record
CLSA-2026-1793128508- Updated
- 2026-11-02
OSVCLSA-2026-1793128764No score
TuxCare security update for org.freemarker:freemarker (1 CVE)
TuxCare rebuilt org.freemarker:freemarker to address 1 CVE. Fixed in 2.3.31-tuxcare.1.
- Record
CLSA-2026-1793128764- Updated
- 2026-11-02
OSVROOT-APP-MAVEN-CVE-2026-84939No score
CVE-2026-84939 in org.freemarker:freemarker - Patched by Root
Root has patched CVE-2026-84939 in the org.freemarker:freemarker package for Root:Maven. Multiple fixed versions available.
- Record
ROOT-APP-MAVEN-CVE-2026-84939- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.freemarker:freemarkerMaven | 2.2.0 to 2.3.34 | 2.3.35 |
org.freemarker:freemarkerTuxCare:Maven | 2.3.34 up to 2.3.34-tuxcare.1 | 2.3.34-tuxcare.1 |
org.freemarker:freemarkerTuxCare:Maven | 2.3.33 up to 2.3.33-tuxcare.1 | 2.3.33-tuxcare.1 |
org.freemarker:freemarkerTuxCare:Maven | 2.3.32 up to 2.3.32-tuxcare.1 | 2.3.32-tuxcare.1 |
org.freemarker:freemarkerTuxCare:Maven | 2.3.29 up to 2.3.29-tuxcare.1 | 2.3.29-tuxcare.1 |
org.freemarker:freemarkerTuxCare:Maven | 2.3.30 up to 2.3.30-tuxcare.1 | 2.3.30-tuxcare.1 |
org.freemarker:freemarkerTuxCare:Maven | 2.3.31 up to 2.3.31-tuxcare.1 | 2.3.31-tuxcare.1 |
libfreemarker-javaDebian:12 | All versions, plus listed versions 2.3.31-22.3.32-12.3.32-22.3.32-2.1 | None known |
libfreemarker-javaDebian:13 | All versions, plus listed versions 2.3.32-2.1 | None known |
libfreemarker-javaDebian:14 | All versions, plus listed versions 2.3.32-2.1 | None known |
Show 10 moreShow less
| Package | Affected | Fixed |
|---|---|---|
org.freemarker:freemarkerMaven | 2.2.0 up to 2.3.35, plus listed versions 2.3.102.3.112.3.122.3.132.3.14 Show 21 moreShow less2.3.152.3.162.3.172.3.182.3.192.3.202.3.212.3.222.3.232.3.24-incubating2.3.25-incubating2.3.26-incubating2.3.27-incubating2.3.282.3.292.3.302.3.312.3.322.3.332.3.342.3.9 | 2.3.35 |
org.freemarker:freemarkerRoot:Maven | before 2.3.32-aikido.1 | 2.3.32-aikido.12.3.34-aikido.1 |
io.root.org.freemarker:freemarkerRoot:Maven | before 2.3.32-root.io.1 | 2.3.32-root.io.12.3.34-root.io.1 |
libfreemarker-javaUbuntu:16.04:LTS | All versions, plus listed versions 2.3.23-12.3.23-22.3.23-3 | None known |
libfreemarker-javaUbuntu:18.04:LTS | All versions, plus listed versions 2.3.23-62.3.23-72.3.23-8 | None known |
libfreemarker-javaUbuntu:20.04:LTS | All versions, plus listed versions 2.3.23-9 | None known |
libfreemarker-javaUbuntu:22.04:LTS | All versions, plus listed versions 2.3.23-11 | None known |
libfreemarker-javaUbuntu:24.04:LTS | All versions, plus listed versions 2.3.31-22.3.32-12.3.32-2 | None known |
libfreemarker-javaUbuntu:26.10 | All versions, plus listed versions 2.3.32-2.1 | None known |
libfreemarker-javaUbuntu:26.04:LTS | All versions, plus listed versions 2.3.32-2.1 | None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-84939 is a critical vulnerability (CVSS 9.1) in Apache Freemarker, published September 10, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.85%, the 58th percentile. Fixed in org.freemarker:freemarker 2.3.35.
References
lists.apache.org/thread/hrd7o2ylwkkswdyhyzllgqt0f80kyd5y
openwall.com/lists/oss-security/2026/09/08/2
nvd.nist.gov/vuln/detail/CVE-2026-84939
github.com/apache/freemarker/commit/83953d9a9fa5a7c1fce3e39ff57182c19a34b5eb
github.com/apache/freemarker/releases/tag/v2.3.35
github.com/advisories/GHSA-27j2-h3m2-8237