Skip to content
CVE Tracker
Back

CVE-2026-120064

psqlODBC does not validate column numbers and row indexes in binding and descriptor functions

High7.5
Published
Updated
Reserved
Assigned by
PostgreSQL

Description

Several psqlODBC entry points use an application-supplied column number or row index as an array index without validating it. SQLBindCol with a column number above 32767 wraps the binding count negative and a later copy runs off the array. A negative SQL_DESC_COUNT on an application row descriptor unbinds columns at negative indexes. SQLColAttribute with a very large column number uses a negative index. SQLSetPos(SQL_ADD) does not check the row number against the rowset size. An application that forwards untrusted column or row numbers exposes its process to out-of-bounds reads and writes. Versions before psqlODBC 18.00.0006 are affected.

Scores

CVSS scores of CVE-2026-120064, by who scored it
Scored byCVSSScoreVector
PostgreSQLCNA (assigner)3.1High7.5CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
NVDNVD · Awaiting Analysis3.1High7.5CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS (exploitation in 30 days)
Not scored
CISA SSVC
Exploitation: none · Automatable: no · Technical impact: total

The list uses the assigner's score when there is one, then CISA's, then NVD's: High 7.5.

Weakness

Affected products

  • PostgreSQL · psqlODBC

    • affected < 18.00.0006

What to do

Solution: Upgrade to psqlODBC 18.00.0006 or later. SQLBindCol rejects column numbers above 32767 with SQLSTATE 07009, a negative descriptor count is ignored, and the column and row indexes are range-checked.

Workaround: Validate column numbers (1..32767 and within the result set) and row numbers (within the rowset) in the application before calling the driver.

References (1)

Sources

The same CVE in the primary databases and aggregators, to check against.

Record last updated .