CVE-2026-54354
MapServer: PostGIS Numeric Filter Value SQL Injection in MapServer Runtime Query Translation
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
8.2
MapServer: PostGIS Numeric Filter Value SQL Injection in MapServer Runtime Query Translation
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.
- Record
CVE-2026-54354- CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L - Weakness
- CWE-89
- Updated
- 2026-11-02
EUVDEUVD-2026-82431
8.2
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.
- Record
EUVD-2026-82431- CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L - Updated
- 2026-11-02
NVD
8.2
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.
- Record
CVE-2026-54354- CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L - Weakness
- CWE-89
- Updated
- 2026-11-02
OSV
8.2
MapServer: PostGIS Numeric Filter Value SQL Injection in MapServer Runtime Query Translation
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.
- Record
CVE-2026-54354- CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L - Weakness
- CWE-89
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-54354
8.2
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.
- Record
DEBIAN-CVE-2026-54354- CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-54354
8.2
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.
- Record
UBUNTU-CVE-2026-54354- CVSS 3.1
- 8.2 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
mapserverDebian:12 |
All versions, plus listed versions 8.0.0-38.0.0-3+deb12u18.0.1-18.0.1-1~exp18.0.1-2 Show 45 moreShow less8.0.1-2.1~exp18.0.1-2~bpo12+18.0.1-38.0.1-3~exp18.0.1-48.0.1-58.0.2-18.0.2-1~bpo12+18.2.0-18.2.0-1~bpo12+18.2.0~beta1-1~exp18.2.0~beta2-1~exp18.2.0~beta3-1~exp18.2.0~rc1-1~exp18.2.0~rc2-1~exp18.2.0~rc3-1~exp18.2.1-18.2.1-1~bpo12+18.2.2-18.2.2-1~bpo12+18.4.0-18.4.0-1~bpo12+18.4.0-28.4.0-38.4.0-48.4.0~beta1-1~exp18.4.0~beta2-1~exp18.4.0~rc1-1~exp18.4.1-18.4.1-1~bpo13+18.4.1-28.6.0-18.6.0-1~bpo13+18.6.0~beta1-1~exp18.6.0~beta2-1~exp18.6.0~rc1-1~exp18.6.1-18.6.1-1~bpo13+18.6.2-18.6.2-1~bpo13+18.6.3-18.6.3-1~bpo13+18.6.4-18.6.4-1~bpo13+18.6.5-1 |
None known |
mapserverDebian:13 |
All versions, plus listed versions 8.4.0-48.4.0-4+deb13u18.4.0-4+deb13u28.4.1-18.4.1-1~bpo13+1 Show 18 moreShow less8.4.1-28.6.0-18.6.0-1~bpo13+18.6.0~beta1-1~exp18.6.0~beta2-1~exp18.6.0~rc1-1~exp18.6.1-18.6.1-1~bpo13+18.6.2-18.6.2-1~bpo13+18.6.3-18.6.3-1~bpo13+18.6.4-18.6.4-1~bpo13+18.6.5-18.6.5-1~bpo13+18.6.6-18.6.6-1~bpo13+1 |
None known |
mapserverDebian:14 |
before 8.6.4-1, plus listed versions 8.4.0-48.4.1-18.4.1-1~bpo13+18.4.1-28.6.0-1 Show 11 moreShow less8.6.0-1~bpo13+18.6.0~beta1-1~exp18.6.0~beta2-1~exp18.6.0~rc1-1~exp18.6.1-18.6.1-1~bpo13+18.6.2-18.6.2-1~bpo13+18.6.3-18.6.3-1~bpo13+18.6.4-1~bpo13+1 |
8.6.4-1 |
mapserverUbuntu:16.04:LTS |
All versions, plus listed versions 7.0.0-4build17.0.0-5ubuntu17.0.0-77.0.0-87.0.0-8build1 Show 5 moreShow less7.0.0-97.0.0-9ubuntu17.0.0-9ubuntu27.0.0-9ubuntu37.0.0-9ubuntu3.1 |
None known |
mapserverUbuntu:18.04:LTS |
All versions, plus listed versions 7.0.6-2build17.0.7-17.0.7-1build17.0.7-1build2 |
None known |
mapserverUbuntu:20.04:LTS |
All versions, plus listed versions 7.4.1-1build17.4.1-1build37.4.2-17.4.2-1build17.4.3-17.4.3-1build27.4.3-27.4.3-2build1 |
None known |
mapserverUbuntu:22.04:LTS |
All versions, plus listed versions 7.6.3-1~exp1ubuntu17.6.4-27.6.4-2build2 |
None known |
mapserverUbuntu:24.04:LTS |
All versions, plus listed versions 8.0.1-2build18.0.1-2build28.0.1-2build38.0.1-2build58.0.1-4ubuntu18.0.1-4ubuntu2 |
None known |
mapserverUbuntu:26.04:LTS |
All versions, plus listed versions 8.4.0-4build18.4.1-18.4.1-1build18.4.1-28.4.1-2build18.6.0-18.6.0-1build1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-54354 is a high vulnerability (CVSS 8.2) in Mapserver, published September 17, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.68%, the 52nd percentile. Fixed in mapserver 8.6.4-1.
References
github.com/MapServer/MapServer/security/advisories/GHSA-xp29-8wp5-wc3p
github.com/MapServer/MapServer/pull/7516
github.com/MapServer/MapServer/commit/65f1b53c258df2abdf6ce1f437c29e75e9976247
github.com/MapServer/MapServer/commit/bd59d49779d2ecc64ca8dc1281c53231a50b698e
github.com/MapServer/MapServer/releases/tag/rel-8-6-4
mapserver.org/development/changelog/changelog-8-6.html
Left out here: 3 versions. The JSON record has them.