Every CVE Search/ Get API key

CVE-2024-36401

Remote Code Execution (RCE) vulnerability in evaluating property name expressions in Geoserver

9.8 CriticalIn KEVPublic exploitFix available

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.

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
High

Exploit likelihood

99.8%Up 99.8 points since Jul 2, 2024
90%50%10%1%

What each source reports

CVE List Score used 9.8

Remote Code Execution (RCE) vulnerability in evaluating property name expressions in Geoserver

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.

Record
CVE-2024-36401
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-95
Updated
2026-11-02
EUVDEUVD-2024-2280 9.8

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.

Record
EUVD-2024-2280
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Updated
2026-11-02
GitHub AdvisoriesGHSA-6jj6-gm7p-fcvv 9.3

Remote Code Execution (RCE) vulnerability in geoserver

Summary

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.

Details

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.

PoC

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.

Impact

This vulnerability can lead to executing arbitrary code.

Workaround

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 by an extension you are using:

Mitigation for geoserver.war deploy:

  1. Stop the application server
  2. Unzip geoserver.war into a directory
  3. Locate the file WEB-INF/lib/gt-complex-x.y.jar and remove
  4. Zip the directory into a new geoserver.war
  5. Restart the application server

Mitigation for GeoServer binary:

  1. Stop Jetty
  2. Locate the file webapps/geoserver/WEB-INF/lib/gt-complex-x.y.jar and remove
  3. Restart Jetty

The following extensions and community modules are known to have a direct dependency on gt-complex jar and are not expected function properly without it. This is not comprehensive list and additional GeoServer functionality may be dependent on the availability of gt-complex jar:

  • Extensions: Application Schema, Catalog Services for the Web, MongoDB Data Store
  • Community Modules: Features-Templating, OGC API Modules, Smart Data Loader, SOLR Data Store

Mitigation available for prior releases patching three jars in your existing install:

  1. Patched gt-app-schema, gt-complex and gt-xsd-core jars may be downloaded for GeoServer: 2.25.1, 2.24.3, 2.24.2, 2.23.2, 2.22.2, 2.21.5, 2.21.4,2.20.7, 2.20.4, 2.19.2, 2.18.0.

    As example the 2.25.1 page links to geoserver-2.25.1-patches.zip download on source forge.

  2. Unzip the geoserver-x.y.z-patches.zip which contains three…

Record
GHSA-6jj6-gm7p-fcvv
CVSS 4.0
9.3 CriticalCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:A
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:H
Weakness
CWE-94, CWE-95
Updated
2026-11-02
CISA KEV No score

OSGeo GeoServer GeoTools Eval Injection Vulnerability

OSGeo GeoServer GeoTools contains an improper neutralization of directives in dynamically evaluated code vulnerability due to unsafely evaluating property names as XPath expressions. This allows unauthenticated attackers to conduct remote code execution via specially crafted input.

Record
CVE-2024-36401
Weakness
CWE-95
Updated
2026-11-02
NVD 9.8

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.

Record
CVE-2024-36401
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-95, CWE-94
Updated
2026-11-02
OSV 9.8

Remote Code Execution (RCE) vulnerability in evaluating property name expressions in Geoserver

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.

Record
CVE-2024-36401
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Weakness
CWE-95
Updated
2026-11-02
OSVGHSA-6jj6-gm7p-fcvv 9.3

Remote Code Execution (RCE) vulnerability in geoserver

Summary

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.

Details

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.

PoC

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.

Impact

This vulnerability can lead to executing arbitrary code.

Workaround

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 by an extension you are using:

Mitigation for geoserver.war deploy:

  1. Stop the application server
  2. Unzip geoserver.war into a directory
  3. Locate the file WEB-INF/lib/gt-complex-x.y.jar and remove
  4. Zip the directory into a new geoserver.war
  5. Restart the application server

Mitigation for GeoServer binary:

  1. Stop Jetty
  2. Locate the file webapps/geoserver/WEB-INF/lib/gt-complex-x.y.jar and remove
  3. Restart Jetty

The following extensions and community modules are known to have a direct dependency on gt-complex jar and are not expected function properly without it. This is not comprehensive list and additional GeoServer functionality may be dependent on the availability of gt-complex jar:

  • Extensions: Application Schema, Catalog Services for the Web, MongoDB Data Store
  • Community Modules: Features-Templating, OGC API Modules, Smart Data Loader, SOLR Data Store

Mitigation available for prior releases patching three jars in your existing install:

  1. Patched gt-app-schema, gt-complex and gt-xsd-core jars may be downloaded for GeoServer: 2.25.1, 2.24.3, 2.24.2, 2.23.2, 2.22.2, 2.21.5, 2.21.4,2.20.7, 2.20.4, 2.19.2, 2.18.0.

    As example the 2.25.1 page links to geoserver-2.25.1-patches.zip download on source forge.

  2. Unzip the geoserver-x.y.z-patches.zip which contains three…

Record
GHSA-6jj6-gm7p-fcvv
CVSS 4.0
9.3 CriticalCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:A
CVSS 3.1
9.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:H
Weakness
CWE-94, CWE-95
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
org.geoserver.web:gs-web-app
Maven
2.24.0 up to 2.24.4
2.24.4
org.geoserver:gs-wfs
Maven
2.24.0 up to 2.24.4
2.24.4
org.geoserver:gs-wms
Maven
2.24.0 up to 2.24.4
2.24.4
org.geoserver.web:gs-web-app
Maven
2.25.0 up to 2.25.2
2.25.2
org.geoserver:gs-wfs
Maven
2.25.0 up to 2.25.2
2.25.2
org.geoserver:gs-wms
Maven
2.25.0 up to 2.25.2
2.25.2
org.geoserver.web:gs-web-app
Maven
2.23.0 up to 2.23.6
2.23.6
org.geoserver:gs-wfs
Maven
2.23.0 up to 2.23.6
2.23.6
org.geoserver:gs-wms
Maven
2.23.0 up to 2.23.6
2.23.6
org.geoserver.web:gs-web-app
Maven
before 2.22.6
2.22.6
org.geoserver:gs-wfs
Maven
before 2.22.6
2.22.6
org.geoserver:gs-wms
Maven
before 2.22.6
2.22.6

Public exploits

Links only. Every CVE stores no exploit code.

Public exploits
SourceLinkDate
MetasploitGeoserver unauthenticated Remote Code Execution2024-07-01
PoC in GitHubbigb0x/CVE-2024-364012024-07-04
PoC in GitHubNiuwoo/CVE-2024-364012024-07-05
PoC in GitHubRevoltSecurities/CVE-2024-364012024-07-05
PoC in GitHubMr-xn/CVE-2024-364012024-07-06
PoC in GitHubjakabakos/CVE-2024-36401-GeoServer-RCE2024-07-12
PoC in GitHubahisec/geoserver-2024-07-17
PoC in GitHubChocapikk/CVE-2024-364012024-07-30
PoC in GitHuby1s4s/CVE-2024-36401-PoC2024-08-01
PoC in GitHubjustin-p/geoexplorer2024-08-27
Show 15 moreShow less
Public exploits
SourceLinkDate
PoC in GitHubdaniellowrie/CVE-2024-36401-PoC2024-09-13
PoC in GitHubkkhackz0013/CVE-2024-364012024-10-14
PoC in GitHub0x0d3ad/CVE-2024-364012024-11-27
PoC in GitHubfunnyDog896/CVE-2024-36401-WoodpeckerPlugin2024-11-28
PoC in GitHubwhitebear-ch/GeoServerExploit2025-01-07
PoC in GitHubbmth666/GeoServer-Tools-CVE-2024-364012025-04-11
PoC in GitHubamoy6228/CVE-2024-36401_Geoserver_RCE_POC2025-04-30
PoC in GitHubURJACK2025/CVE-2024-364012025-10-04
PoC in GitHubmantanhacker/CVE-2024-36401-MASS2025-12-05
PoC in GitHubDelt-A/CVE-2024-36401-poc2026-05-30
PoC in GitHubDanieleGiovanardi2408/cve-2024-36401-geoserver-rce2026-06-03
PoC in GitHubkeelanbrady1011/CVE-2024-364012026-07-07
PoC in GitHubraniaemran/cve-2024-36401-security-simulator2026-09-15
PoC in GitHubbasesixtythree/B63-POC-CVE-2024-364012026-10-22
NucleiGeoServer RCE in Evaluating Property Name Expressions

History

History
RecordedChangedSources
exploitation
exploits
exploits
first indexedCVE List, EUVD, GitHub Advisories, CISA KEV, Metasploit, Nuclei, NVD, OSV, PoC in GitHub

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2024-36401 is a critical vulnerability (CVSS 9.8) in Geoserver, published July 1, 2024. CISA lists it as known to be exploited, since July 15, 2024. EUVD reports exploitation since July 15, 2024. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 99.8%, the 99th percentile. Fixed in org.geoserver.web:gs-web-app 2.24.4.

References

Show 5 moreShow less
This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open