Skip to main content

psqlODBC EUVDEUVD-2026-115378

| CVE-2026-120065 HIGH
SQL Injection (CWE-89)
2026-11-02 PostgreSQL
7.1
CVSS 3.1 · Vendor: PostgreSQL
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as DB user able to create tables
  2. Delivery
    Create OID-less table with int4 serial and quote-laced column name
  3. Exploit
    Application opens updatable cursor over table
  4. Execution
    Driver splices unescaped name into positioned SQL
  5. Persist
    Injected WHERE clause alters affected rows
  6. Impact
    Unauthorized data read/modify/delete

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires all of: an application using psqlODBC before 18.00.0006 that opens an UPDATABLE cursor; the target table has NO OIDs and has an auto-increment int4 column that the driver uses as the row identifier; and that column's name, as reported by the server, contains a double-quote character (the driver fails to double embedded quotes when wrapping the name). The attacker must be authenticated as a database user with privileges to CREATE a table the application subsequently reads with such a cursor, OR be a server that is not trusted under the client's current SSL settings. Limiting factors: exploitation is confined to these cursor/table conditions and to the application's own database privileges (scope unchanged), and it depends on the application actually performing positioned SELECT/UPDATE/DELETE operations - not merely connecting. The only complete fix stated by the vendor is upgrading to psqlODBC 18.00.0006 or later.

Impact

This is a genuine but conditional SQL injection (CWE-89) in psqlODBC, not a drive-by critical. The CVSS 3.1 vector (AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H = 7.1 High) is internally consistent with the description: network-reachable (AV:N) but gated by high attack complexity (AC:H, the chain of preconditions - updatable cursor over an OID-less table with an auto-increment int4 column), low privilege (PR:L, the attacker must be a database user able to CREATE a table the application later reads, or a server untrusted under current SSL settings), and required user/application interaction (UI:R, the application must actually run the positioned SELECT/UPDATE/DELETE). No EPSS score, no CISA KEV entry, and no proof-of-concept or exploit reference were supplied - the sole reference is the vendor security advisory (GHSA-9cg8-r57h-h6jj) - so there is no public exploit identified at time of analysis and no quantitative exploitation probability to weigh. The vuln.today decision label is 'this_week', indicating elevated-but-not-emergency priority, which aligns with the signals: high impact once triggered, but meaningful preconditions and no evidence of active exploitation. Realistically this is a privilege-boundary / untrusted-input issue most relevant where untrusted users can create tables or where SSL trust is weak, rather than a mass-exploitable internet-facing flaw.

Exploit ScenarioDerived

A low-privileged database user creates a table (no OIDs, with an auto-increment int4 column) whose column name embeds an unescaped double quote, then waits for or induces an application to open an updatable cursor over it; psqlODBC splices the malicious name into its keyset and positioned SELECT/UPDATE/DELETE statements, altering the SQL that runs with the application's privileges and changing which rows an UPDATE or DELETE touches. Alternatively, a server not trusted under the client's current SSL settings supplies the crafted column name. No public exploit is identified at time of analysis, and the high attack complexity reflects the specific cursor/table conditions that must line up.

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

SQL injection in psqlODBC before 18.00.0006 can let an authenticated database user who can create a table that an application reads with an updatable cursor manipulate the driver's keyset and positioned SQL, including which rows a positioned UPDATE or DELETE affects. The flaw triggers when the table lacks OIDs, uses an auto-increment int4 column as the row identifier, and that column's server-reported name contains a double quote that the driver fails to escape. No public exploit identified at time of analysis; exploitation is conditional on the application using updatable cursors and performing positioned operations, and requires user interaction per the CVSS vector.

RemediationAI

Vendor-released patch: psqlODBC 18.00.0006 or later. The vendor states upgrading is the only complete fix. See https://github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-9cg8-r57h-h6jj.

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. For an updatable cursor over a table without OIDs that has an auto-increment int4 column, the driver uses that column to identify rows. It places the server-reported column name between double quotes in keyset queries and in the WHERE clause of positioned SELECT, UPDATE, and DELETE statements, but does not double embedded double quotes. This is a CWE-89 SQL injection class flaw: a column name containing a double quote changes the SQL 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 the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. The CPE cpe:2.3:a:postgresql:psqlodbc:*:*:*:*:*:*:*:* covers affected versions before 18.00.0006.

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.1 HIGH
AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
vuln.today AI 7.1 HIGH

Network-reachable but gated by multiple table/cursor preconditions (AC:H); attacker needs table-creation privilege (PR:L) and the app must run the cursor (UI:R); injected SQL runs with app rights giving full C/I/A.

3.1 AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:H/AT:N/PR:L/UI:P/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
Required
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.1

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

CVE-2026-120065 is a high-severity SQL injection flaw in psqlODBC (versions before 18.00.0006) that could allow an authenticated database user to manipulate row-level UPDATE or DELETE operations when specific conditions align. While no public exploit has been identified, the vulnerability requires user interaction and a narrow configuration, making immediate patching and deployment of interim mitigations essential to protect data integrity.

Business Impact: Medium
Compensating Controls

No vendor-released patch identified at time of analysis; apply interim mitigations such as restricting database user privileges, disabling application use of updatable cursors where feasible, and modifying table schemas to avoid the vulnerable conditions.

Threat Intelligence Overview

Prevalence
Medium
official PostgreSQL ODBC driver, common in apps but a specific connector
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org Vulnrichment GitHub

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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
Medium
Technical Impact
Total

Priority Score

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

CVE-2026-120064 HIGH
7.5 Nov 02

Out-of-bounds reads and writes in psqlODBC before 18.00.0006 arise when a host application forwards untrusted column num

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-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