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

Vulnerability from cvelistv5 – Published: 2026-08-21 20:13 – Updated: 2026-08-27 16:24
VLAI Previdian
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-25 03:56 UTC
CWE
  • CWE-89 - Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Impacted products
Vendor Product Version
geotools geotools Affected: = 35.0
Affected: >= 34.0, < 34.5
Affected: >= 30.5, < 33.6
Create a notification for this product.
Previdian
Known Exploited Vulnerability - GCVE BCP-07 Compliant

Vulnerability ID: CVE-2026-76904

Status: Confirmed

Status Updated: 2026-08-18 11:07 CEST

Exploited: Yes


Timestamps
First Seen: 2026-08-18
Asserted: 2026-08-18

Scope
Notes: GeoTools has unauthenticated SQL injection in the jsonArrayContains filter function against PostGIS layers | Affected: Geotools / geotools | CVSS: 9.8 (CRITICAL) | EPSS: 0.02403 | Used in malware: unknown | Not yet in CISA KEV: True

Evidence

Type: Public Report

Signal: Successful Exploitation

Confidence: 70%

Source: previdian


Details
Feed Previdian (previdian.com)
Title GeoTools has unauthenticated SQL injection in the jsonArrayContains filter function against PostGIS layers
Cve Id CVE-2026-76904
Vendor Geotools
Ghsa Id GHSA-MQJF-5F49-2FJH
Product geotools
Added Date 2026-08-18T09:07:09.639Z
Cvss Score 9.8
Epss Score 0.02403
Previous Ids
Cvss Severity CRITICAL
Virtual Patch False
Cvss Estimated False
Epss Percentile 0.83441
Used In Malware unknown
Vulnerability Id CVE-2026-76904
Ahead Of Cisa Kev None
Not Yet In Cisa Kev True

References

Created: 2026-10-02 09:09 CEST | Updated: 2026-10-02 09:09 CEST
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-25T03:56:51.618521Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-08-27T16:24:50.888Z",
          "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-27T16:24:50.888Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-76904",
      "date": "2026-10-04",
      "epss": "0.02403",
      "percentile": "0.83468"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "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"
                  }
                ]
              }
            ],
            "source": "security-advisories@github.com"
          }
        ],
        "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."
          }
        ],
        "id": "CVE-2026-76904",
        "lastModified": "2026-09-09T21:06:39.057",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "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"
              },
              "exploitabilityScore": 3.9,
              "impactScore": 5.9,
              "source": "security-advisories@github.com",
              "type": "Secondary"
            }
          ],
          "ssvcV203": [
            {
              "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "ssvcData": {
                "id": "CVE-2026-76904",
                "options": [
                  {
                    "exploitation": "none"
                  },
                  {
                    "automatable": "yes"
                  },
                  {
                    "technicalImpact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-25T03:56:51.618521Z",
                "version": "2.0.3"
              }
            }
          ]
        },
        "published": "2026-08-21T21:17:06.143",
        "references": [
          {
            "source": "security-advisories@github.com",
            "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"
          }
        ],
        "sourceIdentifier": "security-advisories@github.com",
        "vulnStatus": "Deferred",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-89"
              }
            ],
            "source": "security-advisories@github.com",
            "type": "Secondary"
          }
        ]
      }
    },
    "vulnrichment": {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-76904",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-25T03:56:51.618521Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-27T16:15:12.911Z",
              "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"
    }
  }
}



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…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…