{"id":"CVE-2026-120064","title":"psqlODBC does not validate column numbers and row indexes in binding and descriptor functions","summary":"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 arra…","severity":"high","cvss":7.5,"cvssVector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","cvssSource":"cna","cwe":["CWE-129","CWE-190"],"vendor":"PostgreSQL","product":"psqlODBC","affected":["psqlODBC < 18.00.0006"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"total","timestamp":"2026-11-02T19:36:44.618557Z"},"published":"2026-11-02","updated":"2026-11-02","sourceUpdated":"2026-11-02T19:36:58.409Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-120064","references":[{"url":"https://github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-7pq2-q7mj-ph8c"}],"tags":["cve.org"],"epss":0.00342,"epssPercentile":0.27875,"ingestedAt":"2026-11-05T19:30:42.804Z","slug":"CVE-2026-120064","body":"## Overview\n\nSeveral 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.\n\n## Affected\n\n- `psqlODBC < 18.00.0006`\n\n## Remediation\n\nUpgrade 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.\n\n### Workarounds\n\nValidate column numbers (1..32767 and within the result set) and row numbers (within the rowset) in the application before calling the driver.","depth":"twilight","depthScore":41,"depthScoreParts":{"impact":41.3,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}