Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

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

Quick assessment

Affected
geotools geotools
Exploitation
Public or AI PoC available; prioritize validation
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

GeoTools 是一个开源的 Java 库,提供用于处理地理空间数据的工具。从版本 30.5 起,至版本 33.6、34.5 和 33.6(原文中 33.6 重复出现,疑为笔误)之前的版本中,当使用 PostGIS DataStore 实现执行 OGC 过滤器时,存在一个 SQL 注入漏洞,具体涉及 函数。该漏洞要求在 PostGIS 12 或更高版本环境下,且数据库表中包含字符串(String)或 JSON 类型字段。 在 PostGIS 12 及更高版本中, 函数会将 参数直接写入生成的 SQL 语句中,而未

CVSS 9.8 · Critical EPSS 0.52% · P42

Public Exploits 1

Possible ATT&CK Techniques 1 AI

T1190 · Exploit Public-Facing Application

Affected Version Matrix 3

VendorProduct Version RangeStatus
geotools geotools = 35.0 affected
>= 34.0, < 34.5 affected
>= 30.5, < 33.6 affected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-76904

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
GeoTools has unauthenticated SQL injection in the jsonArrayContains filter function against PostGIS layers
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
SQL命令中使用的特殊元素转义处理不恰当(SQL注入)
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
geotools geotools = 35.0 -

II. Public POCs for CVE-2026-76904

# POC Description Source Link Shenlong Link
1 GeoServer is an open source software server written in Java that allows users to share and edit geospatial data. GeoTools FilterToSqlHelper.constructEquality writes the expected argument of the jsonArrayContains CQL function RAW into the SQL string while only escaping the JSON pointer. A single quote in the value parameter breaks out of the PostgreSQL jsonb_path_exists string literal, enabling unauthenticated SQL injection. When the PostGIS backend runs with superuser privileges, the injection escalates to operating system command execution through PostgreSQL COPY TO PROGRAM. 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 enable the PostGIS DataStore preparedStatements setting and disable encode functions as a workaround. https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2026/CVE-2026-76904.yaml POC Details
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-76904

登录查看更多情报信息。

Patches & Fixes for CVE-2026-76904 (3)

Vendor Advisories for CVE-2026-76904 (2)

Vendor Pages for CVE-2026-76904 (3)

Other References for CVE-2026-76904 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-76904

No comments yet


Leave a comment