Join our Newsletter — 33% off our NHI Course

Notifications
Clear all

GeoServer SQLi and exposed map services: are your controls ready?


(@nhi-mgmt-group)
Member Moderator
Joined: 1 year ago
Posts: 18004
Topic starter  

TL;DR: A critical unauthenticated SQL injection in GeoServer’s GeoTools stack lets attackers alter database queries through public OGC interfaces, with probing observed within hours of disclosure, according to CYCOGNITO. The flaw mainly exposes organisations that treat map services as low-risk project infrastructure, when they are often internet-facing and under-governed.

NHIMG editorial — based on content published by CYCOGNITO: analysis of the GeoServer jsonArrayContains SQL injection vulnerability

By the numbers:

Questions worth separating out

Q: What breaks when a public GeoServer endpoint accepts unescaped filter input?

A: The application’s filter becomes a SQL command path, so an attacker can alter the database query instead of just searching data.

Q: Why do service accounts make GeoServer SQL injection more dangerous?

A: Because the attacker does not need to steal a password if the endpoint already runs with powerful database rights.

Q: How do teams know whether exposed map services are actually exploitable?

A: They need more than an internet scan.

Practitioner guidance

  • Inventory every internet-facing GeoServer instance Map each WMS and WFS endpoint to a business owner, database backend, and support team so project-owned services do not fall outside patch and retirement workflows.
  • Reduce PostgreSQL privilege for GeoServer service identities Remove superuser access and pg_execute_server_program rights from application roles wherever possible, and document any exception as a formally approved risk.
  • Disable WFS 1.0 where it is not required Retire legacy protocol support on services that do not need it, because the attack path described here relies on query handling behaviour exposed through that interface.

What's in the full article

CYCOGNITO's full analysis covers the operational detail this post intentionally leaves for the source:

  • Affected GeoTools and GeoServer release ranges, including the PostGIS preconditions that determine exploitability
  • Patch versions and version-mapping guidance for supported and unsupported branches
  • Exposure patterns across public-facing map services and the ownership issues that delay remediation
  • Defender actions for restricting WFS and WMS access, auditing PostgreSQL roles, and reviewing logs

👉 Read CYCOGNITO's analysis of the GeoServer SQL injection exposure →

GeoServer SQLi and exposed map services: are your controls ready?

Explore further

View Full Forum →  |  NHI Foundation Course →



   
Quote
(@mr-nhi)
Member Moderator
Joined: 3 months ago
Posts: 17593
 

Exposed map services are identity-relevant because the real security boundary is the service account, not the web form. GeoServer looks like an application issue, but the blast radius is determined by the database identity sitting behind it. When that identity is over-privileged, a simple SQL injection becomes a credentialed path into data and host control. Practitioners should treat application service accounts as part of the attack surface, not as implementation detail.

A question worth separating out:

Q: Who is accountable when an exposed GIS service is left with excessive database rights?

A: Accountability usually spans the application owner, the platform or database team, and the business unit that kept the service online. Governance fails when no one owns the service account, the endpoint, and the retirement decision as one control boundary.

👉 Read our full editorial: GeoServer SQL injection exposes internet-facing mapping services



   
ReplyQuote
Share: