GHSA-826P-4GCG-35VW
Vulnerability from github – Published: 2025-06-09 23:14 – Updated: 2025-06-09 23:14Summary
GeoTools Schema class use of Eclipse XSD library to represent schema data structure is vulnerable to XML External Entity (XXE) exploit.
Impact
This impacts whoever exposes XML processing with gt-xsd-core involved in parsing, when the documents carry a reference to an external XML schema. The gt-xsd-core Schemas class is not using the EntityResolver provided by the ParserHandler (if any was configured).
This also impacts users of gt-wfs-ng DataStore where the ENTITY_RESOLVER connection parameter was not being used as intended.
Resolution
GeoTools API change allows EntityResolver to be supplied to the following methods:
Schemas.parse( location, locators, resolvers, uriHandlers, entityResolver);
Schemas.findSchemas(Configuration configuration, EntityResolver entityResolver);
With this API change the gt-wfs-ng WFS DataStore ENTITY_RESOLVER parameter is now used.
Reference
-
GHSA-jj54-8f66-c5pc: Describes the impact of the
gt-xsd-corevulnerability on the GeoServer WFS protocol, resulting in both Service Side Request Forgery (SSRF) and Out-of-Band (OOB) data exfiltration of local files. -
GHSA-2p76-gc46-5fvc: Describes the impact of the
gt-wfs-ngandgt-xsd-corevulnerability on the GeoNetwork WFS Index functionality.
{
"affected": [
{
"package": {
"ecosystem": "Maven",
"name": "org.geotools:gt-xsd-core"
},
"ranges": [
{
"events": [
{
"introduced": "33.0"
},
{
"fixed": "33.1"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"33.0"
]
},
{
"package": {
"ecosystem": "Maven",
"name": "org.geotools:gt-xsd-core"
},
"ranges": [
{
"events": [
{
"introduced": "32.0"
},
{
"fixed": "32.3"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 31.6"
},
"package": {
"ecosystem": "Maven",
"name": "org.geotools:gt-xsd-core"
},
"ranges": [
{
"events": [
{
"introduced": "29.0"
},
{
"fixed": "31.7"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "Maven",
"name": "org.geotools:gt-wfs-ng"
},
"ranges": [
{
"events": [
{
"introduced": "33.0"
},
{
"fixed": "33.1"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "Maven",
"name": "org.geotools:gt-wfs-ng"
},
"ranges": [
{
"events": [
{
"introduced": "32.0"
},
{
"fixed": "32.3"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"database_specific": {
"last_known_affected_version_range": "\u003c= 31.6"
},
"package": {
"ecosystem": "Maven",
"name": "org.geotools:gt-wfs-ng"
},
"ranges": [
{
"events": [
{
"introduced": "29.0"
},
{
"fixed": "31.7"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "Maven",
"name": "org.geotools:gt-xsd-core"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "28.6.1"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "Maven",
"name": "org.geotools:gt-wfs-ng"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "28.6.1"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-611"
],
"github_reviewed": true,
"github_reviewed_at": "2025-06-09T23:14:48Z",
"nvd_published_at": null,
"severity": "CRITICAL"
},
"details": "### Summary\n\nGeoTools Schema class use of Eclipse XSD library to represent schema data structure is vulnerable to XML External Entity (XXE) exploit.\n\n### Impact\n\nThis impacts whoever exposes XML processing with ``gt-xsd-core`` involved in parsing, when the documents carry a reference to an external XML schema. The ``gt-xsd-core`` Schemas class is not using the EntityResolver provided by the ParserHandler (if any was configured).\n\nThis also impacts users of ``gt-wfs-ng`` DataStore where the ENTITY_RESOLVER connection parameter was not being used as intended.\n\n### Resolution\n\nGeoTools API change allows EntityResolver to be supplied to the following methods:\n\n```java\nSchemas.parse( location, locators, resolvers, uriHandlers, entityResolver);\nSchemas.findSchemas(Configuration configuration, EntityResolver entityResolver);\n```\n\nWith this API change the `gt-wfs-ng` WFS DataStore ENTITY_RESOLVER parameter is now used.\n\n### Reference\n\n* [GHSA-jj54-8f66-c5pc](https://github.com/geoserver/geoserver/security/advisories/GHSA-jj54-8f66-c5pc): Describes the impact of the ``gt-xsd-core`` vulnerability on the GeoServer WFS protocol, resulting in both Service Side Request Forgery (SSRF) and Out-of-Band (OOB) data exfiltration of local files.\n\n* [GHSA-2p76-gc46-5fvc](https://github.com/geonetwork/core-geonetwork/security/advisories/GHSA-2p76-gc46-5fvc): Describes the impact of the ``gt-wfs-ng`` and ``gt-xsd-core`` vulnerability on the GeoNetwork WFS Index functionality.",
"id": "GHSA-826p-4gcg-35vw",
"modified": "2025-06-09T23:14:48Z",
"published": "2025-06-09T23:14:48Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/geonetwork/core-geonetwork/security/advisories/GHSA-2p76-gc46-5fvc"
},
{
"type": "WEB",
"url": "https://github.com/geoserver/geoserver/security/advisories/GHSA-jj54-8f66-c5pc"
},
{
"type": "WEB",
"url": "https://github.com/geotools/geotools/security/advisories/GHSA-826p-4gcg-35vw"
},
{
"type": "PACKAGE",
"url": "https://github.com/geotools/geotools"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:L",
"type": "CVSS_V3"
}
],
"summary": "GeoTools has XML External Entity (XXE) Processing Vulnerability in XSD schema handling"
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.