CVE-2024-36401
| Affected software | 2 products, listed below |
|---|---|
| Severity | 9.8 Critical CVSS 3.1 2 scores |
| Fixed in | 2.24.4, 2.25.2, 2.23.6, 2.22.6 |
| Weakness | Code injection (CWE-94) |
| Published | 1 Jul 2024 |
| Updated | 29 Sep 2026 |
Description
GeoServer is an open source server that allows users to share and edit geospatial data. Prior to versions 2.22.6, 2.23.6, 2.24.4, and 2.25.2, multiple OGC request parameters allow Remote Code Execution (RCE) by unauthenticated users through specially crafted input against a default GeoServer installation due to unsafely evaluating property names as XPath expressions.
The GeoTools library API that GeoServer calls evaluates property/attribute names for feature types in a way that unsafely passes them to the commons-jxpath library which can execute arbitrary code when evaluating XPath expressions. This XPath evaluation is intended to be used only by complex feature types (i.e., Application Schema data stores) but is incorrectly being applied to simple feature types as well which makes this vulnerability apply to **ALL** GeoServer instances. No public PoC is provided but this vulnerability has been confirmed to be exploitable through WFS GetFeature, WFS GetPropertyValue, WMS GetMap, WMS GetFeatureInfo, WMS GetLegendGraphic and WPS Execute requests. This vulnerability can lead to executing arbitrary code.
Versions 2.22.6, 2.23.6, 2.24.4, and 2.25.2 contain a patch for the issue. A workaround exists by removing the gt-complex-x.y.jar file from the GeoServer where x.y is the GeoTools version (e.g., gt-complex-31.1.jar if running GeoServer 2.25.1). This will remove the vulnerable code from GeoServer but may break some GeoServer functionality or prevent GeoServer from deploying if the gt-complex module is needed.
CWE-95
Exploitation status
Exploited
Confirmed real-world exploitation.
Exploitation status
- CISA KEV listed Confirmed exploitation in the wild. Added 2024-07-15 · remediation due 2024-08-05 · ransomware use: unknown
- VulnCheck KEV listed Exploitation reported in the wild. 29 citations · honeypot sightings · 28 exploits · earliest 2024-07-03.
- CISA Vulnrichment exploitation: active CISA records active exploitation. Automatable: yes, technical impact: total.
- Indexed PoC 19 indexed Published artifacts you can open, in GitHub PoC, Metasploit, Nuclei; first seen 2024-07-04.
- EPSS 99.8% chance in 30 days A model's forecast, not a report of exploitation. Higher than 99.9% of all scored CVEs.
VulnCheck KEV
Exploitation evidence from VulnCheck Known Exploited Vulnerabilities (VulnCheck KEV), used under VulnCheck's community terms. View CVE-2024-36401 in VulnCheck (free account), which lists 24 more citations and 23 more exploit references not shown here.
| Evidence | Source | Detail | Date |
|---|---|---|---|
| Honeypot sighting | SANS DShield sensors | Exploitation attempts seen on 1 day | 2024-07-03 |
| Honeypot sighting | Shadowserver honeypots | Exploitation attempts seen on 772 days | 2024-07-28 to 2026-11-12 |
| Honeypot sighting | VulnCheck canaries | Exploitation attempts seen on 196 days | 2025-12-02 to 2026-11-13 |
| Reported exploitation | cisa.gov | /sites/default/files/feeds/known_exploited_vulnerabilities.json | 2024-07-15 |
| Reported exploitation | blog.sonicwall.com | /en-us/2024/07/geoserver-rce-vulnerability-cve-2024-36401-being-exploited-in-the-wild | 2024-07-29 |
| Reported exploitation | isc.sans.edu | /diary/A%20Survey%20of%20Scans%20for%20GeoServer%20Vulnerabilities/31148 | 2024-08-06 |
| Reported exploitation | fortinet.com | /blog/threat-research/threat-actors-exploit-geoserver-vulnerability-cve-2024-36401 | 2024-09-05 |
| Reported exploitation | trendmicro.com | /en_us/research/24/i/earth-baxia-spear-phishing-and-geoserver-exploit.html | 2024-09-19 |
| Exploit reference | VulnCheck XDB e908c49bab48 | Exploit type: initial-access | 2024-07-04 |
| Exploit reference | VulnCheck XDB 07cf7a5d5e1b | Exploit type: initial-access | 2024-07-05 |
| Exploit reference | VulnCheck XDB 0a69e625f39a | Exploit type: initial-access | 2024-07-05 |
| Exploit reference | VulnCheck XDB 46abf92ec267 | Exploit type: initial-access | 2024-07-06 |
| Exploit reference | VulnCheck XDB 83b62ab68571 | Exploit type: initial-access | 2024-07-12 |
| Index | Artifact | Stars | First seen |
|---|---|---|---|
| GitHub PoC | GeoServer(CVE-2024-36401/CVE-2024-36404)漏洞利用工具 | 123 | 2025-01-07 |
| Nuclei | GeoServer RCE in Evaluating Property Name Expressions | ||
| Metasploit | Geoserver unauthenticated Remote Code Execution (excellent rank) | ||
| GitHub PoC | GeoServer Remote Code Execution | 89 | 2024-07-30 |
| GitHub PoC | Remote Code Execution (RCE) Vulnerability In Evaluating Property Name Expressions with multies ways to exploit | 56 | 2024-07-06 |
| GitHub PoC | geoserver CVE-2024-36401漏洞利用工具 | 45 | 2024-07-17 |
| GitHub PoC | CVE-2024-36401 图形化利用工具,支持各个JDK版本利用以及回显、内存马实现 | 44 | 2025-04-11 |
| GitHub PoC | POC for CVE-2024-36401. This POC will attempt to establish a reverse shell from the vlun targets. | 35 | 2024-07-04 |
| GitHub PoC | Mass scanner for CVE-2024-36401 | 4 | 2024-08-27 |
| GitHub PoC | POC | 4 | 2024-07-05 |
Waratek protection
Waratek has a rule that blocks the main way to exploit this vulnerability, but a public exploit or tool gets past it.
- Protection partial Process
- Action available security rule
- Review human Researcher
- Record active
| Decided by | A researcher's recorded decision for this specific CVE |
|---|---|
| Finding | A researcher found this CVE partially protected by the ARMR Process rule: a public exploit or tool reaches the rated impact without tripping it. |
Waratek research note
written 2026-11-13Written by a Waratek engineer who reviewed this CVE. Their decision sets the status above, ahead of every automated rule except a withdrawal.
Comments
Rule Name: ARMR Process rule
JXPath expression injection via OGC feature property names; the Process rule (with /bin/* and /usr/* listed) blocks the exec(Runtime.getRuntime(),cmd) fork the mainstream exploits use. An exploit variant that loads a hidden webshell into GeoServer without starting a program is not stopped.
How to mitigate CVE-2024-36401
Upgrade the affected software to a release that fixes it: 2.24.4, 2.25.2, 2.23.6 or 2.22.6. Until you can, Waratek RASP blocks the main way to exploit it with its process rule, but a public exploit or tool gets past it. The research note above says which.
CVSS
9.8 CRITICAL
v3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
2 metrics
CVSS
9.8 CRITICAL v3.1CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
2 metrics
We show the highest score from the newest CVSS version. Scores from different versions can't be compared, and the first score listed is sometimes a 0.0 placeholder.
| Version | Score | Band | Vector | Assigner | Type | |
|---|---|---|---|---|---|---|
| CVSS 3.1 | 9.8 | CRITICAL | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
security-advisories@github.com | Secondary | published |
| CVSS 3.1 | 9.8 | CRITICAL | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
NVD | Primary |
Affected software and releases
Maven packages
Affected and fixed versions, from OSV.dev| Package | Introduced | Fixed | Last affected |
|---|---|---|---|
org.geoserver.web:gs-web-app |
2.24.0 | 2.24.4 |
unbounded |
org.geoserver:gs-wfs |
2.24.0 | 2.24.4 |
unbounded |
org.geoserver:gs-wms |
2.24.0 | 2.24.4 |
unbounded |
org.geoserver.web:gs-web-app |
2.25.0 | 2.25.2 |
unbounded |
org.geoserver:gs-wfs |
2.25.0 | 2.25.2 |
unbounded |
org.geoserver:gs-wms |
2.25.0 | 2.25.2 |
unbounded |
org.geoserver.web:gs-web-app |
2.23.0 | 2.23.6 |
unbounded |
org.geoserver:gs-wfs |
2.23.0 | 2.23.6 |
unbounded |
org.geoserver:gs-wms |
2.23.0 | 2.23.6 |
unbounded |
org.geoserver.web:gs-web-app |
0 | 2.22.6 |
unbounded |
org.geoserver:gs-wfs |
0 | 2.22.6 |
unbounded |
org.geoserver:gs-wms |
0 | 2.22.6 |
unbounded |
Products and versions
5 products, 23 version entries| Source | Vendor | Product | Scheme | Affected versions |
|---|---|---|---|---|
| nvd | geoserver | geoserver | generic | < 2.22.6 · ≥ 2.23.0 and < 2.23.6 · ≥ 2.24.0 and < 2.24.4 · ≥ 2.25.0 and < 2.25.2 |
| nvd | geotools | geotools | generic | < 29.6 · 30.0 · 30.0:rc · ≥ 30.1 and < 30.4 · 31.0 · 31.0:rc · ≥ 31.1 and < 31.2 |
| osv | org.geoserver | gs-wfs | generic | < 2.22.6 · ≥ 2.23.0 and < 2.23.6 · ≥ 2.24.0 and < 2.24.4 · ≥ 2.25.0 and < 2.25.2 |
| osv | org.geoserver | gs-wms | generic | < 2.22.6 · ≥ 2.23.0 and < 2.23.6 · ≥ 2.24.0 and < 2.24.4 · ≥ 2.25.0 and < 2.25.2 |
| osv | org.geoserver.web | gs-web-app | generic | < 2.22.6 · ≥ 2.23.0 and < 2.23.6 · ≥ 2.24.0 and < 2.24.4 · ≥ 2.25.0 and < 2.25.2 |
References
Timeline
Timeline
| Published | 2024-07-01 | By the CVE Program. |
|---|---|---|
| VulnCheck KEV: earliest evidence | 2024-07-03 | Date of the oldest evidence of exploitation in VulnCheck KEV's record. VulnCheck does not publish the date it listed the CVE. |
| Added to CISA KEV | 2024-07-15 | Listed in CISA's Known Exploited Vulnerabilities catalog. |
| NVD record modified | 2026-06-17 | NVD's own last-modified date for this record. |
| Last VRT activity | 2026-09-29 | Most recent commit touching this CVE's classification, patch or rule file. |
| VulnCheck KEV: latest evidence | 2026-11-13 | Date of the newest report, exploit reference or honeypot sighting in VulnCheck KEV's record. |
| Classification created | 2026-11-13 | First commit adding this CVE's research note. |