CVE-2024-36401 OSGeo GeoServer GeoTools Eval Injection

Exploited in the wild Critical 9.8 Published Updated

Unauthenticated attackers can execute arbitrary code on GeoServer via crafted OGC requests due to unsafe XPath evaluation in property names.

Exploited in the wild
Since 15 Jul 2024
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2024-36401?

CVE-2024-36401 is a critical code injection vulnerability in geoserver, published on 1 Jul 2024. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official 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.

Weakness: CWE-94, CWE-95

Which versions are affected by CVE-2024-36401?

24 open source packages ship an affected version, including org.geoserver.web:gs-web-app, org.geoserver:gs-wfs and org.geoserver:gs-wms. It affects 2 products.

PackageAffectedFixed in
org.geoserver.web:gs-web-app MavenAll versions2.22.6
org.geoserver.web:gs-web-app MavenAll versions2.22.6
org.geoserver.web:gs-web-app MavenFrom 2.23.02.23.6
org.geoserver.web:gs-web-app MavenFrom 2.23.02.23.6
org.geoserver.web:gs-web-app MavenFrom 2.24.02.24.4
org.geoserver.web:gs-web-app MavenFrom 2.24.02.24.4
18 more packages
org.geoserver.web:gs-web-app MavenFrom 2.25.02.25.2
org.geoserver.web:gs-web-app MavenFrom 2.25.02.25.2
org.geoserver:gs-wfs MavenAll versions2.22.6
org.geoserver:gs-wfs MavenAll versions2.22.6
org.geoserver:gs-wfs MavenFrom 2.23.02.23.6
org.geoserver:gs-wfs MavenFrom 2.23.02.23.6
org.geoserver:gs-wfs MavenFrom 2.24.02.24.4
org.geoserver:gs-wfs MavenFrom 2.24.02.24.4
org.geoserver:gs-wfs MavenFrom 2.25.02.25.2
org.geoserver:gs-wfs MavenFrom 2.25.02.25.2
org.geoserver:gs-wms MavenAll versions2.22.6
org.geoserver:gs-wms MavenAll versions2.22.6
org.geoserver:gs-wms MavenFrom 2.23.02.23.6
org.geoserver:gs-wms MavenFrom 2.23.02.23.6
org.geoserver:gs-wms MavenFrom 2.24.02.24.4
org.geoserver:gs-wms MavenFrom 2.24.02.24.4
org.geoserver:gs-wms MavenFrom 2.25.02.25.2
org.geoserver:gs-wms MavenFrom 2.25.02.25.2

Products include Geoserver Geoserver, Geotools Geotools.

How do I fix CVE-2024-36401?

Upgrade org.geoserver.web:gs-web-app to a fixed version for your release line: 2.22.6, 2.23.6, 2.24.4 or 2.25.2. US federal agencies must fix it by 5 Aug 2024.

Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.

Is CVE-2024-36401 being exploited?

Yes. Attackers have exploited CVE-2024-36401 in the wild since at least 15 Jul 2024.

Public exploit code: 1 Metasploit module, 1 Nuclei template and 23 proofs of concept on GitHub.

Sources

Also known as GHSA-6jj6-gm7p-fcvv.

Is CVE-2024-36401 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free