Description
MapServer is a system for developing web-based GIS applications. Prior to 8.6.4, MapServer's PostGIS runtime filter translation in src/mappostgis.cpp and msPostGISLayerTranslateFilter() treats a filteritem as numeric when CONNECTIONTYPE POSTGIS and metadata such as gml_<item>_type=Integer are configured, but it does not verify that attacker-controlled CGI qstring or OGC API Features featureId input is a numeric literal. The unquoted input is concatenated into the generated PostgreSQL/PostGIS predicate, allowing an unauthenticated remote attacker with access to an affected query endpoint to bypass predicates, enumerate unintended records, perform boolean-based or time-based SQL injection, and increase database load. The issue does not by itself establish database modification capabilities. This issue is fixed in version 8.6.4.
References6
- github.com/MapServer/MapServer/commit/65f1b53c258df2abdf6ce1f43…
- github.com/MapServer/MapServer/commit/bd59d49779d2ecc64ca8dc128…
- github.com/MapServer/MapServer/pull/7516
- github.com/MapServer/MapServer/releases/tag/rel-8-6-4
- github.com/MapServer/MapServer/security/advisories/GHSA-xp29-8w…
- mapserver.org/development/changelog/changelog-8-6.html#changelo…
Metrics
- CVSS 3.1
-
8.2
HIGH
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L - EPSS — exploit probability
- 1% percentile: 53 · as of 8 November 2026
- CWE
- CWE-89
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.