Skip to main content

psqlODBC CVE-2026-120059

| EUVDEUVD-2026-115372 MEDIUM
Use of Externally-Controlled Format String (CWE-134)
2026-11-02 PostgreSQL
6.8
CVSS 3.1 · Vendor: PostgreSQL
View

Attack ChainAIDerived

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

  1. Access
    Control untrusted server or create crafted table
  2. Delivery
    Name a column with printf format directives
  3. Exploit
    Application runs updatable cursor over the table
  4. Execution
    Driver expands column name as format string in WHERE clause
  5. Impact
    Read stray client memory, crashing app or leaking memory into server-bound query

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Format string safety
Exploitation Conditions

Exploitation requires a specific, non-default alignment of conditions drawn directly from the description: (1) the application must open an UPDATABLE cursor over (2) a table WITHOUT OIDs that (3) has an auto-increment int4 column, and (4) that column's name - as reported by the server - must contain printf format directives. The malicious name must originate either from a PostgreSQL server not trusted under the client's current SSL settings, or from any database user with privileges to create a table the application subsequently reads. Limiting factors: the CVSS vector's UI:R and AC:H reflect that the vulnerable code path only runs when the application performs positioned SELECT/UPDATE/DELETE over such a cursor, and the attacker must influence server-reported column naming - so default, read-only, or OID-bearing usage is not affected.

Impact

This is a moderate, not emergency, priority. The vendor-supplied CVSS of 6.8 (CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:H) reflects a network-reachable but high-complexity, interaction-dependent issue: the driver must run an updatable cursor over a table that has no OIDs and an auto-increment int4 column, and the triggering column name must contain printf format directives. The vuln.today decision label is 'this_month' (not act_now or emergency), which is consistent with a real but non-urgent fix window. No CISA KEV listing is present, so there is no confirmed active exploitation; no EPSS score was supplied in the input, so exploitation probability cannot be quantified here; and no PoC or exploit reference is listed (the only reference is the vendor GHSA advisory, not exploit code). The confidentiality impact (C:H) is well-grounded in the description - client memory can be copied into query text sent to the server - and the availability impact (A:H) reflects an application crash; integrity is correctly N. Net: a genuinely interesting memory-disclosure-plus-DoS format-string flaw, but AC:H and UI:R meaningfully limit mass exploitation, and the absence of KEV, EPSS, and any PoC argues against treating it as an immediate threat.

Exploit ScenarioDerived

An attacker who controls a PostgreSQL server that is not trusted under the client's current SSL settings, or any database user able to create a table the application later reads with an updatable cursor, names a column using printf-style format directives (e.g. containing %s or %n style tokens). When the psqlODBC client runs a positioned SELECT/UPDATE/DELETE and builds the WHERE clause, the driver expands that attacker-chosen name as a format string with only one argument, reading unrelated process memory. No public exploit identified at time of analysis; only a vendor advisory reference exists.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 02, 2026

Format-string handling in psqlODBC before 18.00.0006 can crash applications or disclose client memory when an updatable cursor reads a table without OIDs that has an auto-increment int4 column whose server-reported name contains printf directives. The driver uses that column name as a format string while building the WHERE clause for positioned SELECT, UPDATE, and DELETE statements; exploitation requires a server not trusted under current SSL settings or a database user able to create a table the application reads, plus the non-default cursor/table/column alignment. This is a moderate, not emergency, priority, and no public exploit was identified at time of analysis; the assessed vector is AV:N/AC:H/PR:N/UI:R with high confidentiality and availability impact.

RemediationAI

Vendor-released patch: psqlODBC 18.00.0006. Upgrade to psqlODBC 18.00.0006 or later; the vendor advisory at https://github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-44rq-72jh-x2h8 documents the affected versions and fixed release. No separate workaround is stated in the supplied advisory data.

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 ODBC driver for PostgreSQL, and the affected CPE is postgresql:psqlodbc for versions before 18.00.0006. The root cause is CWE-134 (Use of Externally-Controlled Format String): for an updatable cursor over a table without OIDs that has an auto-increment int4 column, the driver places the column name as reported by the server into a printf-style format string. It later expands that string with one argument while constructing the WHERE clause of positioned SELECT, UPDATE, and DELETE statements. A column name containing format directives makes the driver read unrelated memory, which can crash the application or copy client memory into query text sent to the server. The assessed CVSS vector AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:H reflects the specific, non-default alignment required: the application must use an updatable cursor and positioned statements, and the attacker must influence the server-reported column naming through an untrusted server under the client's current SSL settings or through a database user who can create a table the application reads. Default read-only or OID-bearing usage is not described as affected, and the trigger details beyond these conditions are not stated 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 6.8 MEDIUM
AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:H
vuln.today AI 6.8 MEDIUM

AV:N because the malicious column name can come from an untrusted server; AC:H and UI:R because a specific updatable-cursor/table layout must be in use; PR:N for the untrusted-server path; C:H (memory disclosure) and A:H (crash), I:N.

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

Primary rating from Vendor (PostgreSQL).

CVSS VectorVendor: PostgreSQL

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

Lifecycle Timeline

1
Patch available
Nov 02, 2026 - 20:18 EUVD

DescriptionCVE.org

For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC places that column's name, as reported by the server, into a printf-style format string. It later expands that string with one argument while it builds the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements. A column name that contains format directives makes the driver read unrelated memory, which can crash the application or copy client memory into query text sent to the server. The name can come from a server not trusted under current SSL settings, or from any database user who can create a table that the application reads with an updatable cursor. Versions before psqlODBC 18.00.0006 are affected.

Threat Intelligence Overview

Prevalence
Medium
PostgreSQL ODBC driver - common database connectivity component, not universally deployed
Social Media
1
Sightings
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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Medium

Priority Score

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

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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