CVE-2026-120064
psqlODBC does not validate column numbers and row indexes in binding and descriptor functions
- 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
| Scored by | CVSS | Score | Vector |
|---|---|---|---|
| PostgreSQLCNA (assigner) | 3.1 | High7.5 | CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
| NVDNVD · Awaiting Analysis | 3.1 | High7.5 | CVSS: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.
- CVE.org record (opens in a new tab)
- CVE List JSON (GitHub) (opens in a new tab)
- NVD (opens in a new tab)
- FIRST EPSS (opens in a new tab)
- OSV.dev (opens in a new tab)
- GitHub Advisories (opens in a new tab)
- CIRCL Vulnerability-Lookup (opens in a new tab)
Record last updated .