Read the docs

SQL injection in psqlODBC updatable cursor queries

Priority LOW 33CWE-89Published · Updated

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

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00294 22nd percentileScored 2026-11-07
Fix Partial psqlODBC (PostgreSQL): 18.00.0006Red Hat: 5 without a fix

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

VendorProductAffected versionsFixed inStatusSource
PostgreSQLpsqlODBCbefore 18.00.000618.00.0006Patch availableCNA
  • 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 →

ProductStatusPlan or fix
Red Hat Enterprise Linux 10AffectedNo fix yet
Red Hat Enterprise Linux 6AffectedNo fix yet
Red Hat Enterprise Linux 7AffectedNo fix yet
Red Hat Enterprise Linux 8AffectedNo fix yet
Red Hat Enterprise Linux 9AffectedNo fix yet

Timeline

  1. 2026-11-02 Threatist record created from CVE-2026-120065
  2. 2026-11-02 CISA SSVC decision points changed
  3. 2026-11-02 Priority changed: MEDIUM → LOW
  4. 2026-11-02 Alias added: GHSA-gv3c-v55x-3f23
  5. 2026-11-03 Affected versions changed · Red Hat
  6. 2026-11-03 CVSS score added · Red Hat

References

  • 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
See all 228 →

Sources