An improper URI validation vulnerability exists that enables an unauthorized attacker to perform XML External Entities (XEE) attack, then send GET request to any HTTP server. Attacker can abuse this to scan internal networks and gain information about them then exploit further. Moreover, attacker can read limited .xsd file on system.
By default, GeoServer use PreventLocalEntityResolver class from GeoTools to filter out malicious URIs in XML entities before resolving them. The URI must match the regex (?i)(jar:file|http|vfs)[^?#;]*\\.xsd. But the regex leaves a chance for attackers to request to any HTTP server or limited file.
An unauthenticated attacker can:
.xsd..xsd file on system.ENTITY_RESOLUTION_ALLOWLIST to limit the supported external schema locaitons.www.w3.org,schemas.opengis.net,www.opengis.net,inspire.ec.europa.eu/schemas.ENTITY_RESOLUTION_ALLOWLIST and does not require you to provide a system property.ENTITY_RESOLUTION_ALLOWLIST is still supported if you require additional schema locations to be supported beyond the built-in allow list.ENTITY_RESOLUTION_ALLOWLIST no longer supports regular expressions{
"cwe_ids": [
"CWE-20",
"CWE-200",
"CWE-611",
"CWE-918"
],
"github_reviewed": true,
"github_reviewed_at": "2025-06-10T14:13:44Z",
"nvd_published_at": "2025-06-10T15:15:22Z",
"severity": "CRITICAL"
}