LiveActive security incident?Get immediate response
CVE Record

CVE-2026-76904: GeoTools has unauthenticated SQL injection in the jsonArrayContains filter function against PostGIS layers

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.

CriticalCVSS 9.8Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

A flaw in GeoTools can let an unauthenticated attacker manipulate database queries when a service processes specific geospatial filters against qualifying PostGIS layers. Depending on the database account’s permissions, successful exploitation could expose or alter data and disrupt service. Exploitation requires a particular GeoTools, PostGIS, field-type, and filter configuration.

Executive priority

Treat affected, externally reachable services as an immediate remediation priority. Rapidly identify deployments meeting all prerequisites, upgrade them, and reduce database privileges. Services without the required PostGIS DataStore and jsonArrayContains path are not demonstrated vulnerable by the supplied evidence.

Technical view

GeoTools’ PostGIS DataStore generates SQL for OGC jsonArrayContains filters without escaping the value argument. The vulnerable path requires an affected GeoTools version, PostGIS 12 or later, and a String or JSON field. Network-reachable, unauthenticated filter input could compromise database confidentiality, integrity, and availability under the connection account’s privileges.

Likely exposure

Exposure is most likely in applications using GeoTools 30.5–33.5, 34.0–34.4, or 35.0 with the PostGIS DataStore. The vulnerable path additionally requires PostGIS 12 or later, String or JSON fields, and attacker-influenced OGC filters invoking jsonArrayContains. Deployments lacking these conditions are not shown to be affected.

Exploitation context

The supplied record has a 9.8 CVSS score and requires no privileges or user interaction. It reports no CISA KEV listing and provides no evidence of active exploitation. Absence from KEV does not establish that exploitation is impossible.

Researcher notes

The bundle lists affected versions as 35.0, 34.0–34.4, and 30.5–33.5. Its patch sentence repeats 33.6 and omits a 35.x fix while referencing release 35.1. Confirm the exact 35.x remediation through the vendor advisory. No workaround is documented beyond limiting database privileges.

Mitigation direction

  • Upgrade affected 33.x deployments to 33.6 and 34.x deployments to 34.5.
  • For GeoTools 35.0, confirm the corrected 35.x release in the vendor advisory because the bundle's patch text is inconsistent.
  • Configure the PostGIS connection pool with least-privilege database rights to limit injection impact.
  • Do not rely on a workaround; the supplied advisory states none is known.

Validation and detection

  • Inventory deployed GeoTools versions, including transitive Java dependencies.
  • Confirm whether each service uses PostGIS DataStore with PostGIS 12 or later and String or JSON fields.
  • Trace whether untrusted OGC filters can invoke jsonArrayContains against those layers.
  • Verify database accounts used by the connection pool have only required permissions.
  • After upgrading, confirm the deployed artifact version and regression-test legitimate jsonArrayContains filter handling.
Prepared
Confidence
medium
Sources
7

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · medium confidence lookup

CWE-89: Database access and collection lookup

Injection into data stores can inform collection, data access, and exfiltration detection reviews. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Database behavior lookup

The CVE wording references database injection or access, so collection and exfiltration review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-76904 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.8 (3.1)
Known Exploited
No
Published

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

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
10Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: yesTechnical Impact: total

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.8CVSS 3.1CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H3.95.9GitHub_M

Vulnerability scoring details

Base CVSS 3.1 score

9.8Critical
CVSS 3.1 vector shape for CVE-2026-76904Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

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

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc

Source materials

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
geotoolsgeotools= 35.0, >= 34.0, < 34.5, >= 30.5, < 33.6Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.