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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| geoserver | geoserver | >= 2.23.0, < 2.23.6, >= 2.24.0, < 2.24.4, >= 2.25.0, < 2.25.2, < 2.22.6 | — |
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
Metasploit 1 module
-
Geoserver unauthenticated Remote Code Execution
exploit/multi/http/geoserver_unauth_rce_cve_2024_36401
GitHub 23 repositories · most starred shown
-
whitebear-ch/GeoServerExploit ★ 123 · Jan 7, 2025
GeoServer(CVE-2024-36401/CVE-2024-36404)漏洞利用工具
-
Chocapikk/CVE-2024-36401 ★ 89 · Jul 30, 2024
GeoServer Remote Code Execution
-
Mr-xn/CVE-2024-36401 ★ 56 · Jul 6, 2024
Remote Code Execution (RCE) Vulnerability In Evaluating Property Name Expressions with multies ways to exploit
-
ahisec/geoserver- ★ 45 · Jul 17, 2024
geoserver CVE-2024-36401漏洞利用工具
-
bmth666/GeoServer-Tools-CVE-2024-36401 ★ 44 · Apr 11, 2025
CVE-2024-36401 图形化利用工具,支持各个JDK版本利用以及回显、内存马实现
-
bigb0x/CVE-2024-36401 ★ 35 · Jul 4, 2024
POC for CVE-2024-36401. This POC will attempt to establish a reverse shell from the vlun targets.
-
justin-p/geoexplorer ★ 4 · Aug 27, 2024
Mass scanner for CVE-2024-36401
-
Niuwoo/CVE-2024-36401 ★ 4 · Jul 5, 2024
POC
-
daniellowrie/CVE-2024-36401-PoC ★ 3 · Sep 13, 2024
Proof-of-Concept Exploit for CVE-2024-36401 GeoServer 2.25.1
-
0x0d3ad/CVE-2024-36401 ★ 2 · Nov 27, 2024
CVE-2024-36401 (GeoServer Remote Code Execution)
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Automated scanner template
A ready-made Nuclei template detects this vulnerability automatically. Vulnerabilities with public scanner templates are typically probed across the internet soon after the template appears — exposed systems should be patched first.
- GeoServer RCE in Evaluating Property Name Expressions http/cves/2024/CVE-2024-36401.yaml
Source: projectdiscovery/nuclei-templates (MIT) — updated daily. Only links are listed.
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Maven | org.geoserver:gs-wfs | >= 2.24.0, < 2.24.4 | 2.24.4 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver:gs-wfs | >= 2.25.0, < 2.25.2 | 2.25.2 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver:gs-wfs | >= 2.23.0, < 2.23.6 | 2.23.6 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver:gs-wfs | < 2.22.6 | 2.22.6 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver:gs-wms | >= 2.24.0, < 2.24.4 | 2.24.4 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver:gs-wms | >= 2.25.0, < 2.25.2 | 2.25.2 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver:gs-wms | >= 2.23.0, < 2.23.6 | 2.23.6 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver:gs-wms | < 2.22.6 | 2.22.6 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver.web:gs-web-app | >= 2.24.0, < 2.24.4 | 2.24.4 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver.web:gs-web-app | >= 2.25.0, < 2.25.2 | 2.25.2 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver.web:gs-web-app | >= 2.23.0, < 2.23.6 | 2.23.6 | GHSA-6jj6-gm7p-fcvv |
| Maven | org.geoserver.web:gs-web-app | < 2.22.6 | 2.22.6 | GHSA-6jj6-gm7p-fcvv |
Advisories 1
- NCSC-2024-0274 Kwetsbaarheid verholpen in GeoServer NCSC-NL (Netherlands) · Jul 5, 2024
References
- https://github.com/geoserver/geoserver/security/advisories/GHSA-6jj6-gm7p-fcvv
- https://github.com/geotools/geotools/security/advisories/GHSA-w3pj-wh35-fq8w
- https://github.com/geotools/geotools/pull/4797
- https://github.com/Warxim/CVE-2022-41852?tab=readme-ov-file#workaround-for-cve-2022-41852
- https://osgeo-org.atlassian.net/browse/GEOT-7587