Skip to main content

psqlODBC CVE-2026-120064

| EUVDEUVD-2026-115377 HIGH
Improper Validation of Array Index (CWE-129)
2026-11-02 PostgreSQL
7.5
CVSS 3.1 · Vendor: PostgreSQL
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Supply untrusted column/row number to application
  2. Delivery
    Application forwards it to psqlODBC entry point
  3. Exploit
    Index wraps negative or exceeds bounds
  4. Execution
    Out-of-bounds read/write in process memory
  5. Impact
    Memory disclosure or corruption toward code execution

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Array index validation
Exploitation Conditions

Exploitation requires an application using psqlODBC that passes attacker-controlled column numbers or row indices into the affected ODBC entry points: SQLBindCol with a column number above 32767 (binding count wraps negative), a negative SQL_DESC_COUNT set on an application row descriptor, SQLColAttribute called with a very large column number, or SQLSetPos(SQL_ADD) with a row number not checked against the rowset size. This is NOT a default-configuration remote flaw - the limiting factor is that the host application must relay untrusted index values to these APIs, which most applications (using fixed, trusted column numbers) do not do, explaining the AC:H complexity. Affected: all versions before psqlODBC 18.00.0006; the fix is upgrading to 18.00.0006.

Impact

The input CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H, base 7.5) describes high impact across confidentiality, integrity and availability via out-of-bounds reads and writes, but tempers it with high attack complexity (AC:H) and low-privilege requirement (PR:L). The decisive caveat is in the description itself: exploitation only arises in an application that forwards UNTRUSTED column or row numbers to psqlODBC entry points. This is a library/driver flaw whose exploitability is entirely contingent on how the embedding application uses the ODBC API - most applications pass fixed, trusted column numbers and are therefore not exposed, which is consistent with the AC:H rating. No EPSS score is provided, so widespread-exploitation probability cannot be quantified. The CVE is NOT in CISA KEV (no active exploitation signal) and no PoC or exploit reference is present - only the vendor security advisory. The vuln.today decision label is 'this_week', i.e. prioritized but below act_now/emergency. Net: this is a genuine memory-corruption bug worth patching this week for anyone running affected psqlODBC behind applications that relay untrusted indices, but it is not a drop-everything internet-wide threat - the AV:N network vector is only reachable when the host application itself exposes the untrusted column/row values, which should be verified per application rather than assumed.

Exploit ScenarioDerived

An application built on psqlODBC forwards an attacker-influenced column number (for example derived from a web request parameter) into SQLBindCol with a value above 32767, causing the binding count to wrap negative so that a later copy runs off the array; alternatively a negative SQL_DESC_COUNT, an oversized SQLColAttribute column number, or an SQLSetPos(SQL_ADD) row beyond the rowset drives a negative or out-of-range index. The result is an out-of-bounds read or write in the application process, potentially leaking memory or corrupting state toward code execution. No public exploit identified at time of analysis; only the vendor advisory is referenced.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Nov 02, 2026

Out-of-bounds reads and writes in psqlODBC before 18.00.0006 arise when a host application forwards untrusted column numbers or row indices into ODBC entry points such as SQLBindCol, SQLColAttribute and SQLSetPos(SQL_ADD), which the driver uses directly as array indices without validation. This is not a default-configuration remote condition: the limiting factor is that the calling application must itself relay attacker-controlled index values to these APIs, which is why the assessed vector carries high attack complexity (AC:H) and a low-privilege requirement (PR:L) alongside high confidentiality, integrity and availability impact. No public exploit identified at time of analysis; the vendor fix is psqlODBC 18.00.0006.

RemediationAI

Upgrade psqlODBC to 18.00.0006, the version in which the vendor addresses these entry points; the advisory at https://github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-7pq2-q7mj-ph8c is the primary reference. Where the driver cannot be updated immediately, the practical compensating control is at the call site, since the flaw only manifests when untrusted values reach the ODBC APIs: reject or clamp column numbers above 32767 and negative column numbers before calling SQLBindCol and SQLColAttribute, never set a negative SQL_DESC_COUNT on an application row descriptor, and validate SQLSetPos(SQL_ADD) row numbers against the actual rowset size. The trade-off is that this only protects code paths routed through such a wrapper - third-party or embedded applications that call the driver directly remain exposed, and behavior of the driver itself is unchanged, so upgrading remains the only complete fix.

Affected VersionsENISA

psqlODBC 0 <18.00.0006

Affected Packages

euvd psqlodbc fix: 18.00.0006

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

psqlODBC is the PostgreSQL ODBC driver, exposing the ODBC call-level interface in which applications manipulate result-set and application row descriptors through functions like SQLBindCol, SQLColAttribute and SQLSetPos. The root cause is CWE-129 (Improper Validation of Array Index): application-supplied column numbers and row indices are used as array indices without bounds checks. Four distinct paths are described - SQLBindCol with a column number above 32767 wraps the binding count negative so a later copy runs off the array; a negative SQL_DESC_COUNT set on an application row descriptor unbinds columns at negative indexes; SQLColAttribute with a very large column number computes a negative index; and SQLSetPos(SQL_ADD) does not check the row number against the rowset size. The CPE cpe:2.3:a:postgresql:psqlodbc:*:*:*:*:*:*:*:* confirms the affected scope as the driver itself rather than a particular server deployment, and the trigger is therefore entirely dependent on how the host application supplies index values - most applications use fixed, trusted column numbers and never reach the flawed paths, which corresponds to the assessed AC:H. Beyond the index-forwarding precondition described above, the trigger for each individual path is not further described in the available sources.

Know when Psqlodbc gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (PostgreSQL) PRIMARY 7.5 HIGH
AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 7.5 HIGH

Exploitation depends on an uncommon pattern where the application forwards untrusted column/row numbers, hence AC:H and PR:L; out-of-bounds reads and writes give High C/I/A with unchanged scope.

3.1 AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (PostgreSQL).

CVSS VectorVendor: PostgreSQL

Attack Vector
Network
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Nov 02, 2026 - 20:18 EUVD
CVE Published
Nov 02, 2026 - 19:09 cve.org
HIGH 7.5

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

psqlODBC versions before 18.00.0006 contain memory corruption vulnerabilities that could be triggered by malicious applications passing untrusted index values to specific database API calls. The risk is concentrated in environments where internal applications forward untrusted data to the ODBC driver, potentially leading to data leakage or system compromise, though exploitation requires a specific application behavior. Security leadership should prioritize inventorying affected applications and planning an upgrade to the fixed driver version to mitigate potential integrity and confidentiality risks.

Business Impact: Medium
Compensating Controls

Vendor-released patch: psqlODBC 18.00.0006

Threat Intelligence Overview

Prevalence
Medium
official PostgreSQL ODBC driver, common in apps but not universal
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
Medium

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

CVE-2026-120062 HIGH
7.5 Nov 02

SQL injection in psqlODBC before 18.00.0006 allows an attacker who can influence a table or schema name passed by a host

CVE-2026-120061 HIGH
7.5 Nov 02

A stack-based buffer overflow (CWE-121) in the psqlODBC driver, the official PostgreSQL ODBC driver, lets attacker-influ

CVE-2026-120058 HIGH
7.5 Nov 02

Heap out-of-bounds write in the psqlODBC driver (CWE-787) affects all versions before 18.00.0006 and is reachable only w

CVE-2026-120057 HIGH
7.5 Nov 02

A heap buffer overflow in psqlODBC's large-object read path lets a malicious or man-in-the-middle PostgreSQL server over

CVE-2026-120065 HIGH
7.1 Nov 02

SQL injection in psqlODBC before 18.00.0006 can let an authenticated database user who can create a table that an applic

CVE-2026-120059 MEDIUM
6.8 Nov 02

Format-string handling in psqlODBC before 18.00.0006 can crash applications or disclose client memory when an updatable

CVE-2026-109448 MEDIUM
5.9 Oct 12

Heap memory corruption in psqlODBC versions before 18.00.0005 can be triggered when an application binds 32,769 or more

CVE-2026-120067 MEDIUM
5.9 Nov 02

A stack-based buffer overflow in psqlODBC, the PostgreSQL ODBC driver, affects all releases before 18.00.0006 when updat

CVE-2026-120063 MEDIUM
5.9 Nov 02

Stack buffer over-write in psqlODBC before 18.00.0006 can corrupt an application process that forwards attacker-influenc

CVE-2026-120060 MEDIUM
5.9 Nov 02

Client-side crash and limited out-of-bounds read affect psqlODBC before 18.00.0006 when the driver connects to a Postgre

CVE-2026-120066 MEDIUM
5.3 Nov 02

psqlODBC before 18.00.0006 on Unix-like systems can expose query text and data to other local users when logging is enab

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy