Security Digest · Vulnerability record

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

GeoTools is an open source Java library that provides tools for geospatial data.

CVSS 9.8 Critical EPSS 76.1% · p99.5

Should you act?

High exploit likelihood

EPSS ranks it in the top 5% of all CVEs for likely exploitation in the next 30 days. This signal is computed from CISA KEV, EPSS and CVSS data; it is not an editorial verdict.

  • No confirmed exploitation. It is not in CISA’s KEV catalog and CISA’s SSVC assessment records no known exploitation. That can change quickly after a public write-up; re-check if you are affected.
  • EPSS 76.1%, percentile 99.5: FIRST’s model estimates a 76.1% chance of exploitation activity in the next 30 days, higher than 99.5% of all scored CVEs (very high). EPSS is a probability, not a verdict.
  • Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
  • Only applies if your dependency tree includes org.geotools:gt-app-schema (Maven) >= 30.0, < 30.4, fixed in 30.4; org.geotools:gt-complex (Maven) >= 30.0, < 30.4, fixed in 30.4; org.geotools.xsd:gt-xsd-core (Maven) >= 30.0, < 30.4, fixed in 30.4; org.geotools:gt-app-schema (Maven) >= 31.0, < 31.2, fixed in 31.2. Check your lockfile, including transitive dependencies.

What it is

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.

From the GitHub advisory

Summary Remote Code Execution (RCE) is possible if an application uses certain GeoTools functionality to evaluate XPath expressions supplied by user input.

Details The following methods pass XPath expressions to the commons-jxpath library which can execute arbitrary code and would be a security issue if the XPath expressions are provided by user input.

org.geotools.appschema.util.XmlXpathUtilites.getXPathValues(NamespaceSupport, String, Document) org.geotools.appschema.util.XmlXpathUtilites.countXPathNodes(NamespaceSupport, String, Document) org.geotools.appschema.util.XmlXpathUtilites.getSingleXPathValue(NamespaceSupport, String, Document) org.geotools.data.complex.expression.FeaturePropertyAccessorFactory.FeaturePropertyAccessor.get(Object, String, Class ) org.geotools.data.complex.expression.FeaturePropertyAccessorFactory.FeaturePropertyAccessor.set(Object, String, Object, Class) org.geotools.data.complex.expression.MapPropertyAccessorFactory.new PropertyAccessor() {...}.get(Object, String, Class ) org.geotools.xsd.StreamingParser.StreamingParser(Configuration, InputStream, String)

PoC The following inputs to StreamingParser will delay the response by five seconds:

Impact

Weakness type: CWE-95.

Product: org.geotools:gt-app-schema (Maven) · Assigned by: GitHub_M · Published: 2024-07-02

Affected and fixed versions

EcosystemPackageVulnerableFirst fixed
Mavenorg.geotools:gt-app-schema>= 30.0, < 30.430.4
Mavenorg.geotools:gt-complex>= 30.0, < 30.430.4
Mavenorg.geotools.xsd:gt-xsd-core>= 30.0, < 30.430.4
Mavenorg.geotools:gt-app-schema>= 31.0, < 31.231.2
Mavenorg.geotools:gt-complex>= 31.0, < 31.231.2
Mavenorg.geotools.xsd:gt-xsd-core>= 31.0, < 31.231.2
Mavenorg.geotools:gt-app-schema>= 29.0, < 29.629.6
Mavenorg.geotools:gt-complex>= 29.0, < 29.629.6
Mavenorg.geotools.xsd:gt-xsd-core>= 29.0, < 29.629.6
Mavenorg.geotools:gt-app-schema< 28.628.6
Mavenorg.geotools:gt-complex< 28.628.6
Mavenorg.geotools.xsd:gt-xsd-core< 28.628.6
VendorProductAffected versions (per CVE record)
geotoolsgeotools< 29.6, >= 30.0, < 30.4, >= 31.0, < 31.2

Severity scores

Scored byCVSSScoreVector
GitHub_M3.19.8 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
GitHub3.19.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Attack vector: network (remotely reachable)
  • Attack complexity: low
  • Privileges required: none (no login)
  • User interaction: none
  • Scope: unchanged

CVSS measures how bad a flaw is if exploited, not how likely exploitation is. Read it next to the exploitation data below.

Exploitation and urgency

  • CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
  • CISA SSVC assessment: exploitation none, automatable yes, technical impact total.
  • FIRST EPSS (model of 2026-10-21): 76.06% probability of exploitation activity in the next 30 days; percentile 99.5.

Timeline

  • — CVE record published by GitHub_M
  • — CVE record last updated
  • — GitHub-reviewed advisory GHSA-w3pj-wh35-fq8w published (critical)

Sources and references

Original sources first. Version and fix details should always be confirmed against the vendor or project advisory.

Vulnerability records

  1. GitHub Advisory GHSA-w3pj-wh35-fq8w github.com
  2. CVE.org record CVE-2024-36404 cve.org
  3. NVD entry CVE-2024-36404 nvd.nist.gov

Other references from the CVE record and advisory

  1. github.com github.com
  2. github.com github.com
  3. github.com github.com
  4. github.com github.com
  5. osgeo-org.atlassian.net osgeo-org.atlassian.net
  6. sourceforge.net sourceforge.net
  7. sourceforge.net sourceforge.net
  8. sourceforge.net sourceforge.net
  9. sourceforge.net sourceforge.net
  10. sourceforge.net sourceforge.net
  11. sourceforge.net sourceforge.net
  12. sourceforge.net sourceforge.net
  13. sourceforge.net sourceforge.net
  14. sourceforge.net sourceforge.net
  15. sourceforge.net sourceforge.net
  16. sourceforge.net sourceforge.net

Critical Maven advisories · Today’s Security Digest