SQL injection in psqlODBC updatable cursor queries
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- High
- Impact type
- SQL injection
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Partial Red Hat: 5 without a fix
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and Red Hat. Impact type from CWE-89.
Summary
psqlODBC before 18.00.0006 is affected. For updatable cursors on tables without OIDs, the driver places a server-reported column name in double quotes without escaping embedded double quotes (CWE-89). A database user who can create a table the application reads with an updatable cursor, or an untrusted server, can choose such a name and change the SQL run with the application's rights, including which rows an UPDATE or DELETE touches.
Written with Claude Haiku 5.5 from the sources below · 2026-11-03
Description from the CNA
For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| PostgreSQL | psqlODBC | before 18.00.0006 | 18.00.0006 | Patch available | CNA |
- psqlODBC VendorPostgreSQL Affected before 18.00.0006 Fixed in 18.00.0006 Patch available CNA
Remediation
Update psqlODBC to version 18.00.0006. Red Hat lists Red Hat Enterprise Linux 6, 7, 8, 9 and 10 as affected, with the plan none available.
Written with Claude Haiku 5.5 from the sources below · 2026-11-03
- Fix · CNA psqlODBC (PostgreSQL) Fixed in 18.00.0006
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
PostgreSQL psqlODBC 18.00.0006
11 records Highest priority Priority LOW 11 LOW
Other records, highest priority first
- TI-2026-83949 Out-of-bounds access in psqlODBC via unchecked column and row numbersPriority LOW 35
- TI-2026-83947 SQL injection in psqlODBC SQLSpecialColumns table and schema namesPriority LOW 35
- TI-2026-83946 Stack buffer overflow in psqlODBC ODBC escape parserPriority LOW 35
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 10 | Affected | No fix yet |
| Red Hat Enterprise Linux 6 | Affected | No fix yet |
| Red Hat Enterprise Linux 7 | Affected | No fix yet |
| Red Hat Enterprise Linux 8 | Affected | No fix yet |
| Red Hat Enterprise Linux 9 | Affected | No fix yet |
Timeline
- 2026-11-02 Threatist record created from CVE-2026-120065
- 2026-11-02 CISA SSVC decision points changed
- 2026-11-02 Priority changed: MEDIUM → LOW
- 2026-11-02 Alias added: GHSA-gv3c-v55x-3f23
- 2026-11-03 Affected versions changed · Red Hat
- 2026-11-03 CVSS score added · Red Hat
References
More PostgreSQL vulnerabilities
- TI-2024-01491 pgjdbc SQL Injection via line comment generation CVSS 3.1CRITICAL 10.0
- TI-2019-06651 In PostgreSQL 9.3 through 11.2, the "COPY TO/FROM PROGRAM" function allows superusers and… CVSS 3.0HIGH 7.2
- TI-2017-05187 Improper authentication in postgresql CVSS 3.0CRITICAL 9.8
- TI-2022-06097 Unchecked Class Instantiation when providing Plugin Classes CVSS 3.1CRITICAL 9.8
- TI-2022-13237 SQL Injection in ResultSet.refreshRow() with malicious column names in pgjdbc CVSS 3.1HIGH 8.0
- TI-2020-15711 SQL injection in postgresql CVSS 3.1HIGH 8.8
Sources
- CVE-2026-120065 · CVE Program
- CVE-2026-120065 · NVD
- FIRST EPSS
- GHSA-gv3c-v55x-3f23 · GitHub Advisory Database · CC BY 4.0
- CVE-2026-120065 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences