CVE-2026-76904 (GCVE-0-2026-76904)

Vulnerability from cvelistv5 – Published: 2026-08-21 20:13 – Updated: 2026-08-25 03:56
VLAI Shadowserver
Title
GeoTools has unauthenticated SQL injection in the jsonArrayContains filter function against PostGIS layers
Summary
GeoTools is an open source Java library that provides tools for geospatial data. Starting in version 30.5 and prior to versions 33.6, 34.5, and 33.6, an SQL Injection Vulnerability is present when executing OGC Filters with PostGIS DataStore implementation: `jsonArrayContains` function; Requires PostGIS 12 or greater with a String or JSON field. For PostGIS 12 and greater `jsonArrayContains(<column>, <pointer>, <value>)` function writes `<value>` into generated SQL without escaping. Patches are available in versions 33.6, 34.5, and 33.6. No known workaround is available. To limit scope of SQL Injection the PostGIS connection pool should be configured with limited rights.
SSVC
Exploitation: none Automatable: yes Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-08-24 00:00 UTC
CWE
  • CWE-89 - Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Impacted products
Vendor Product Version CPE status
geotools geotools Affected: = 35.0
Affected: >= 34.0, < 34.5
Affected: >= 30.5, < 33.6
guessed Create a notification for this product.
Shadowserver
Known Exploited Vulnerability - GCVE BCP-07 Compliant

Vulnerability ID: CVE-2026-76904

Status: Confirmed

Status Updated: 2026-08-24 22:08 UTC

Exploited: Yes


Characteristics
Severity: 98.0

Timestamps
First Seen: 2026-08-24
Asserted: 2026-08-24
Last Seen: 2026-08-24

Scope
Asset Exposure: ['internet-facing']
Notes: Affected: Geoserver / Geoserver | Class: other-software | Severity: Critical (CVSS 9.8) | IoT: no | In CISA KEV: no | Honeypot connections on 2026-08-24: 1

Evidence

Type: Honeypot

Signal: In The Wild Attempts

Confidence: 70%

Source: shadowserver


Details
1D 1
Iot no
Feed Shadowserver Foundation honeypot/exploited-vulnerabilities
Type http-scan
Class other-software
7D Avg 0
Vendor Geoserver
30D Avg 0
90D Avg 0
Product Geoserver
Cisa Kev no
Connections 1
Observation Date 2026-08-24
Vulnerability Class CVSS
Vulnerability Score 9.8
Vulnerability Severity Critical

References

Created: 2026-08-26 01:01 UTC | Updated: 2026-08-26 01:01 UTC
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-76904",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "yes"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-24T00:00:00+00:00",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-08-25T03:56:50.811Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "geotools",
          "vendor": "geotools",
          "versions": [
            {
              "status": "affected",
              "version": "= 35.0"
            },
            {
              "status": "affected",
              "version": "\u003e= 34.0, \u003c 34.5"
            },
            {
              "status": "affected",
              "version": "\u003e= 30.5, \u003c 33.6"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "GeoTools is an open source Java library that provides tools for geospatial data. Starting in version 30.5 and prior to versions 33.6, 34.5, and 33.6, an SQL Injection Vulnerability is present when executing OGC Filters with PostGIS DataStore implementation: `jsonArrayContains` function; Requires PostGIS 12 or greater with a String or JSON field. For PostGIS 12 and greater `jsonArrayContains(\u003ccolumn\u003e, \u003cpointer\u003e, \u003cvalue\u003e)` function writes `\u003cvalue\u003e` into generated SQL without escaping. Patches are available in versions 33.6, 34.5, and 33.6. No known workaround is available. To limit scope of SQL Injection the PostGIS connection pool should be configured with limited rights."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "LOW",
            "attackVector": "NETWORK",
            "availabilityImpact": "HIGH",
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "HIGH",
            "privilegesRequired": "NONE",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-89",
              "description": "CWE-89: Improper Neutralization of Special Elements used in an SQL Command (\u0027SQL Injection\u0027)",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-21T20:14:33.940Z",
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M"
      },
      "references": [
        {
          "name": "https://github.com/geotools/geotools/security/advisories/GHSA-mqjf-5f49-2fjh",
          "tags": [
            "x_refsource_CONFIRM"
          ],
          "url": "https://github.com/geotools/geotools/security/advisories/GHSA-mqjf-5f49-2fjh"
        },
        {
          "name": "https://github.com/geotools/geotools/pull/5829",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/geotools/geotools/pull/5829"
        },
        {
          "name": "https://github.com/geotools/geotools/commit/d821c4d321dd91c22e31fcd5b1ce676645da5176",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/geotools/geotools/commit/d821c4d321dd91c22e31fcd5b1ce676645da5176"
        },
        {
          "name": "https://github.com/geotools/geotools/releases/tag/33.6",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/geotools/geotools/releases/tag/33.6"
        },
        {
          "name": "https://github.com/geotools/geotools/releases/tag/34.5",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/geotools/geotools/releases/tag/34.5"
        },
        {
          "name": "https://github.com/geotools/geotools/releases/tag/35.1",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/geotools/geotools/releases/tag/35.1"
        },
        {
          "name": "https://osgeo-org.atlassian.net/browse/GEOT-7589",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://osgeo-org.atlassian.net/browse/GEOT-7589"
        },
        {
          "name": "https://osgeo-org.atlassian.net/browse/GEOT-7958",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://osgeo-org.atlassian.net/browse/GEOT-7958"
        },
        {
          "name": "https://osgeo-org.atlassian.net/browse/GEOT-7959",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://osgeo-org.atlassian.net/browse/GEOT-7959"
        }
      ],
      "source": {
        "advisory": "GHSA-mqjf-5f49-2fjh",
        "discovery": "UNKNOWN"
      },
      "title": "GeoTools has unauthenticated SQL injection in the jsonArrayContains filter function against PostGIS layers"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "cveId": "CVE-2026-76904",
    "datePublished": "2026-08-21T20:13:20.536Z",
    "dateReserved": "2026-08-19T22:43:14.891Z",
    "dateUpdated": "2026-08-25T03:56:50.811Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-76904",
      "date": "2026-08-25",
      "epss": "0.00524",
      "percentile": "0.4212"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-76904\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-08-21T21:17:06.143\",\"lastModified\":\"2026-08-25T04:18:20.870\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"GeoTools is an open source Java library that provides tools for geospatial data. Starting in version 30.5 and prior to versions 33.6, 34.5, and 33.6, an SQL Injection Vulnerability is present when executing OGC Filters with PostGIS DataStore implementation: `jsonArrayContains` function; Requires PostGIS 12 or greater with a String or JSON field. For PostGIS 12 and greater `jsonArrayContains(\u003ccolumn\u003e, \u003cpointer\u003e, \u003cvalue\u003e)` function writes `\u003cvalue\u003e` into generated SQL without escaping. Patches are available in versions 33.6, 34.5, and 33.6. No known workaround is available. To limit scope of SQL Injection the PostGIS connection pool should be configured with limited rights.\"}],\"affected\":[{\"source\":\"security-advisories@github.com\",\"affectedData\":[{\"vendor\":\"geotools\",\"product\":\"geotools\",\"versions\":[{\"version\":\"= 35.0\",\"status\":\"affected\"},{\"version\":\"\u003e= 34.0, \u003c 34.5\",\"status\":\"affected\"},{\"version\":\"\u003e= 30.5, \u003c 33.6\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":9.8,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":3.9,\"impactScore\":5.9}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2026-08-24T00:00:00+00:00\",\"id\":\"CVE-2026-76904\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"yes\"},{\"technicalImpact\":\"total\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-89\"}]}],\"references\":[{\"url\":\"https://github.com/geotools/geotools/commit/d821c4d321dd91c22e31fcd5b1ce676645da5176\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/geotools/geotools/pull/5829\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/geotools/geotools/releases/tag/33.6\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/geotools/geotools/releases/tag/34.5\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/geotools/geotools/releases/tag/35.1\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://github.com/geotools/geotools/security/advisories/GHSA-mqjf-5f49-2fjh\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://osgeo-org.atlassian.net/browse/GEOT-7589\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://osgeo-org.atlassian.net/browse/GEOT-7958\",\"source\":\"security-advisories@github.com\"},{\"url\":\"https://osgeo-org.atlassian.net/browse/GEOT-7959\",\"source\":\"security-advisories@github.com\"}]}}"
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…