ZeroHour

CVE-2026-55848

niche

Unauthenticated XXE File Read and SSRF in MapFish Print

CVSS 3.1
8.6 high
EPSS
<1%p26
Published
()
Modified
AI analysis

MapFish Print versions prior to 3.28.30, 3.30.32, 3.31.24, 3.33.16, and 4.0.5 contain an XML external entity (XXE) injection flaw (CWE-611) in the GML layer parsing path (GmlLayer.java). An unauthenticated attacker sends a request to the /api/print3/print endpoint with an attacker-controlled GML layer URL; the server fetches that XML and parses it with external entities and external DTDs enabled, allowing a remote document and DTD to expand a local file entity whose contents leak back through the GML parsing and error path. This lets attackers read local files such as OS account data, Kubernetes service-account tokens, and certificates, and by swapping the file entity target for an internal HTTP endpoint they can also perform server-side request forgery (SSRF) against internal networks. Any deployment of MapFish Print in the affected versions is exposed, with confidentiality impact rated high (CVSS 3.1: 8.6, Scope changed). No public proof-of-concept, no KEV listing, and a low 0.3% EPSS indicate no known exploitation at this time.

What to do: Upgrade MapFish Print to the fixed version on your branch: 3.28.30, 3.30.32, 3.31.24, 3.33.16, or 4.0.5. As interim mitigation, restrict network access to the /api/print3/print endpoint, limit the print service's outbound egress to trusted hosts, and validate or whitelist GML layer URLs. Inventory exposed instances — especially Kubernetes-hosted deployments, where service-account tokens and certificates are readable — and prioritize patching any that are internet-facing.

Affected
MapFish project MapFish Print (mapfish-print)all versions prior to 3.28.30, 3.30.32, 3.31.24, 3.33.16, and 4.0.5 (the fixed version on each branch)
Estimated exposure
nichelikely low thousands of exposed instances at most (specialized geospatial print component, typically embedded in GIS portals) — No public install counts were provided; the estimate is based on deployment patterns, as MapFish Print is a niche Java print service bundled into geospatial portals and SDI stacks rather than a widely installed consumer product.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

mapfish-print is a component of MapFish for printing templated cartographic maps. Prior to 3.28.30, 3.30.32, 3.31.24, 3.33.16, and 4.0.5, MapFish Print accepts an attacker-controlled GML layer url in requests to the /api/print3/print endpoint and fetches XML parsed by core/src/main/java/org/mapfish/print/map/geotools/GmlLayer.java without disabling external entities and external DTDs. A remote XML document and DTD can expand a local file entity, and the resulting content can be exposed through the GML parsing and error path. This allows unauthenticated attackers to read files such as operating-system account data, Kubernetes service-account tokens, and certificates. Replacing the file entity target with an internal HTTP endpoint also permits server-side request forgery. This issue is fixed in versions 3.28.30, 3.30.32, 3.31.24, 3.33.16, and 4.0.5.

Weakness
CWE-611
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

In the news

No ingested article mentions this CVE yet.