Skip to main content
Live Webinar with SANS (June 25)— Agentic CTI Automation for Fun & ProfitRegister Free
Mallory
CriticalCISA KEVExploited in the wildPublic exploit

GeoServer WMS GetMap XXE

IdentifiersCVE-2025-58360CWE-611· Improper Restriction of XML…

CVE-2025-58360 is an XML External Entity (XXE) vulnerability in OSGeo GeoServer. The flaw affects the WMS GetMap processing path exposed via the /geoserver/wms endpoint, where GeoServer accepts XML input that is not sufficiently sanitized or restricted. A remote attacker can supply crafted XML containing external entity declarations, causing the XML parser to resolve attacker-controlled external entities. The issue is described as unauthenticated and affects GeoServer 2.26.0 through 2.26.1 and 2.25.x before 2.25.6. Multiple references in the provided content also state it affects 2.26.1 and earlier within those branches. Fixed releases cited in the content include 2.25.6, 2.26.3, and 2.27.0; some references also mention 2.26.2 and later maintenance releases, but the most consistently cited fixed versions are 2.25.6, 2.26.3, and 2.27.0.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation can allow arbitrary file disclosure from the GeoServer host, server-side request forgery (SSRF) to internal or external services reachable by the server, and denial-of-service conditions depending on parser behavior and payload construction. Because the flaw is described as unauthenticated, internet-exposed GeoServer instances may be remotely exploitable without prior access. The content also indicates active in-the-wild exploitation and CISA KEV inclusion, increasing operational risk.

Mitigation

If you can’t patch tonight, do this now.

If immediate patching is not possible, restrict access to GeoServer WMS endpoints, especially /geoserver/wms and the GetMap operation, to trusted users and networks only using ACLs, reverse proxies, VPNs, or allowlists. Apply compensating controls such as WAF or edge filtering to block malicious XML payloads where feasible. Increase monitoring for anomalous WMS requests and unexpected outbound connections from GeoServer hosts. If mitigations cannot be applied, discontinue exposure/use of the vulnerable service until remediation is completed.

Remediation

Patch, then assume compromise.

Upgrade GeoServer to a vendor-fixed release. Based on the provided content, the primary fixed versions are GeoServer 2.25.6, 2.26.3, and 2.27.0 or later. Some references also mention 2.26.2 and later maintenance releases; organizations should follow the vendor advisory for the exact supported upgrade target in their branch. Update affected packages/components accordingly, including GeoServer distributions and referenced Maven artifacts where applicable.
PUBLIC EXPLOITS

Exploits

4 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (5 hidden).

VALID 4 / 9 TOTALView more in app
cve-2025-58360MaturityPoCVerified exploit

Repository purpose: a small Python proof-of-exploitation tool (class + CLI) for GeoServer XXE leading to arbitrary file read, referenced as CVE-2025-58360. Structure: - README.md: describes the vulnerability (XXE via WMS GetMap), provides example usage of the GeoDumper class, and links to advisories. - exploit/exploiter.py: main exploit implementation and CLI entry point. - requirements.txt: Python dependencies (requests stack). Exploit flow (exploit/exploiter.py): 1) GeoDumper initializes a requests.Session with header Content-Type: application/xml and fixed query params REQUEST=GetMap and SERVICE=WMS. 2) generate_poisoned_xml(target_file) writes a local XML file containing a DOCTYPE with an external entity: SYSTEM "file://<target_file>" and references it as &xxe; inside <Name>. 3) dump_file() reads that XML from disk and POSTs it to http(s)://<target>/<geoserver_path>/wms. 4) On success, it parses the response body using a regex that expects the file contents to appear in a ServiceException message containing "Unknown layer:". 5) Extracted bytes are written to a local dump_<timestamp> file and also returned to the caller. Notable characteristics/limitations: - Focused on file disclosure only (no RCE logic). - Assumes the vulnerable server reflects expanded entity content in a specific error format; otherwise __extract_data raises "no file data found". - Randomizes User-Agent per request for light obfuscation. - Target is specified as "ip or domain"; no explicit port handling beyond default 80/443.

thomas-osgoodDisclosed Feb 2, 2026pythonnetwork
Bypass-CVE-2025-58360MaturityPoCVerified exploit

This repository demonstrates a proof-of-concept (POC) exploit for an unauthenticated XML External Entity (XXE) vulnerability in GeoServer (CVE-2025-58360). The exploit targets the WMS GetMap operation via the /geoserver/{workspace}/ows endpoint, which can be used to bypass WAF protections that only monitor the direct /geoserver/wms endpoint. The repository contains two files: a README.md explaining the attack and providing a curl command for exploitation, and a payload.xml file containing the malicious XML payload. The payload attempts to read /etc/passwd from the server using an external entity. The exploit is network-based and requires the target GeoServer instance to be accessible and vulnerable to XXE. No detection scripts or framework code are present; this is a standalone POC exploit.

quyenheuDisclosed Dec 31, 2025xmlnetwork
CVE-2025-58360-GeoServer-XXEMaturityPoCVerified exploit

This repository provides a proof-of-concept exploit for CVE-2025-58360, a critical unauthenticated XML External Entity (XXE) vulnerability in GeoServer's WMS service. The main exploit script (CVE-2025-58360.py) is a Python tool that automates exploitation by sending crafted XML payloads via the SLD_BODY parameter to the /geoserver/ows?service=WMS&request=GetMap endpoint. The exploit allows attackers to read arbitrary files, list directories, and perform SSRF attacks without authentication. The README.md offers detailed technical background, exploitation steps, and remediation advice. The docker-compose.yml sets up both vulnerable and patched GeoServer instances for testing. The exploit is a POC, not weaponized, and is intended for educational and authorized testing purposes.

Joker-WigginDisclosed Dec 12, 2025pythonyamlnetwork
CVE-2025-58360MaturityPoCVerified exploit

This repository provides a proof-of-concept exploit for CVE-2025-58360, an XML External Entity (XXE) vulnerability in GeoServer (versions 2.26.0 to before 2.26.2 and before 2.25.6). The exploit consists of a Python script (CVE-2025-58360.py) that sends a crafted XML payload to the /geoserver/wms endpoint using a POST request. The payload attempts to read the /etc/passwd file from the server by defining an external entity in the XML. If the server is vulnerable, the script detects the presence of the 'root:' string in the response and prints the file contents. The repository also includes a sample payload.xml for use with curl, which demonstrates an out-of-band XXE attack referencing an external server (http://10.63.150.228:8000). The README provides usage instructions and context. The exploit targets a network-accessible HTTP endpoint and leverages XML parsing vulnerabilities to exfiltrate sensitive files.

quyenheuDisclosed Nov 27, 2025pythonxmlnetwork
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
GeoserverGeoserverapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

ACTIVITY FEED

Recent activity

66 sources tracked across advisories, community write-ups, and news. New activity surfaces here as Mallory finds it.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware

Malware families riding this exploit, with evidence and IOCs.

Detection signatures3

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity48

Community discussion across Reddit, Mastodon, and other social sources.