Skip to content

GeoServer has improper ENTITY_RESOLUTION_ALLOWLIST URI validation in XML Processing (SSRF)

Critical severity GitHub Reviewed Published Jun 10, 2025 in geoserver/geoserver • Updated Jun 10, 2025

Package

maven org.geoserver.main:gs-main (Maven)

Affected versions

< 2.25.0

Patched versions

2.25.0
maven org.geoserver.web:gs-web-app (Maven)
< 2.25.0
2.25.0

Description

Summary

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.

Details

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.

Impact

An unauthenticated attacker can:

  1. Scan internal network to gain insight about it and exploit further.
  2. SSRF to endpoint ends with .xsd.
  3. Read limited .xsd file on system.

Mitigation

  1. Define the system property ENTITY_RESOLUTION_ALLOWLIST to limit the supported external schema locaitons.
  2. The built-in allow list covers the locations required for the operation of OGC web services: www.w3.org,schemas.opengis.net,www.opengis.net,inspire.ec.europa.eu/schemas.
  3. The user guide provides details on how to add additional locations (this is required for app-schema plugin where a schema is supplied to define an output format).

Resolution

  1. GeoServer 2.25.0 and greater default to the use of ENTITY_RESOLUTION_ALLOWLIST and does not require you to provide a system property.
  2. The use of ENTITY_RESOLUTION_ALLOWLIST is still supported if you require additional schema locations to be supported beyond the built-in allow list.
  3. GeoServer 2.25.1 change ENTITY_RESOLUTION_ALLOWLIST no longer supports regular expressions

References

Credits

  • Le Mau Anh Phong from VNG Security Response Center & VNUHCM - University of Information Technology

References

@jodygarnett jodygarnett published to geoserver/geoserver Jun 10, 2025
Published to the GitHub Advisory Database Jun 10, 2025
Reviewed Jun 10, 2025
Published by the National Vulnerability Database Jun 10, 2025
Last updated Jun 10, 2025

Severity

Critical

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
Low
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(7th percentile)

CVE ID

CVE-2024-34711

GHSA ID

GHSA-mc43-4fqr-c965

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.