Skip to main content

psqlODBC CVE-2026-109448

| EUVDEUVD-2026-97731 MEDIUM
Integer Overflow or Wraparound (CWE-190)
2026-10-12 PostgreSQL
5.9
CVSS 3.1 · Vendor: PostgreSQL
View

Attack ChainAIDerived

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

  1. Access
    Supply oversized untrusted IN-list input
  2. Delivery
    Application binds parameter number 32769 via SQLBindParameter
  3. Exploit
    Signed 16-bit binding count wraps to negative
  4. Execution
    Out-of-bounds ~2.5 MB heap write corrupts memory
  5. Impact
    Application crashes or runs on corrupted heap

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer overflow checks
MITRE ATT&CK

1 technique across 1 tactic: Execution

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

Exploitation Conditions

Exploitation requires a calling application that uses psqlODBC and binds more than 32768 parameters on a single statement via SQLBindParameter - specifically where the parameter count is derived from untrusted input, such as an attacker-controlled 'IN (?, ?, ...)' list. The attacker must be able to drive the bound-parameter count to 32769 (binding #32768 wraps the signed 16-bit count to -32768; #32769 triggers the out-of-bounds write). Limiting factors: this is not a default-configuration remote flaw against the driver itself - the host application must expose the parameter count to attacker influence, applications that cap or fix their parameter counts are not exposed, and only psqlODBC versions before 18.00.0005 are affected. No authentication to the driver is required (PR:N), but the practical precondition of a vulnerable application pattern is why attack complexity is high.

Impact

This is a medium-severity (CVSS 5.9) availability-only flaw, and the signals consistently point to real-but-limited risk rather than a top priority. The CVSS vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) shows network reachability with no authentication, but high attack complexity and impact restricted to availability (C:N/I:N) - consistent with CWE-190 integer overflow causing heap corruption and a crash rather than code execution. The vendor (PostgreSQL) scopes the outcome to crash or corrupted-heap state, not confirmed arbitrary code execution, so treating this as a DoS/stability issue is appropriate. No EPSS score, CISA KEV listing, or public POC was provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The AC:H rating is well-founded because exploitation is not universal: it requires a calling application that builds parameter lists from untrusted input (e.g., an IN (?, ?, ...) list) and lets an attacker drive the bound-parameter count past 32768. No conflicting signals were found; the main gap is that heap-corruption bugs can sometimes escalate beyond DoS, but nothing in the provided data supports an integrity/confidentiality impact, so the A:H-only scoring is accepted.

Exploit ScenarioDerived

An application uses psqlODBC and constructs a parameterized query such as 'col IN (?, ?, ...)' where the number of placeholders is derived from untrusted, attacker-influenced input. The attacker submits input large enough to make the application bind parameter number 32769, wrapping the signed 16-bit binding count to a negative value; psqlODBC then writes roughly 2.5 MB of zeros starting about 1.25 MB before the binding array, corrupting the heap and crashing the process. No public exploit code was identified at time of analysis, and exploitation hinges on the host application exposing the parameter count to attacker control.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Oct 12, 2026

Heap memory corruption in psqlODBC versions before 18.00.0005 can be triggered when an application binds 32,769 or more parameters on a single SQL statement via SQLBindParameter. An attacker who controls the parameter count-for example through an untrusted 'IN (?, ?, ...)' list-can wrap the driver's signed 16-bit binding counter, causing a massive out-of-bounds write of zeros that crashes the application or leaves it running with a corrupted heap. No public exploit code has been identified at time of analysis, and exploitation requires a vulnerable application pattern where parameter counts are derived from untrusted input; the flaw is availability-only (CVSS 5.9).

RemediationAI

Upgrade to psqlODBC 18.00.0005 or later, which corrects the integer wraparound and prevents the out-of-bounds write. This is the primary remediation; no workaround is documented in the advisory. If immediate upgrade is not possible, applications should enforce a hard limit on the number of parameters bound per statement (e.g., reject any parameter list exceeding 32,767 entries) and avoid constructing parameter lists directly from untrusted input. Such application-level filtering reduces exposure but requires code changes and may impact functionality for legitimate large queries. The vendor advisory is at https://github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-cmfx-rm3r-p2jr.

Affected VersionsENISA

psqlODBC 08.01.0102 <18.00.0005

Affected Packages

euvd psqlodbc fix: 18.00.0005

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 official ODBC driver for PostgreSQL, enabling client applications to connect to PostgreSQL databases. The flaw is an integer wraparound (CWE-190) in the SQLBindParameter function: the driver tracks the number of bound parameters in a signed 16-bit integer. Binding parameter number 32768 causes this counter to wrap to -32768, and binding parameter 32769 then triggers a large out-of-bounds write of approximately 2.5 MB of zeros beginning 1.25 MB before the binding array, corrupting heap memory. This can crash the application or leave it running with a corrupted heap, resulting in a denial of service. The CVSS vector (AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H) indicates that the flaw is reachable over a network, requires no privileges, and needs no user interaction, but exploitation is contingent on a calling application that binds more than 32,768 parameters on a single statement with the parameter count derived from untrusted input, such as an attacker-controlled IN (?, ?, ...) list, which is why attack complexity is high. The CPE cpe:2.3:a:postgresql:psqlodbc:*:*:*:*:*:*:*:* indicates that all versions before 18.00.0005 are affected. No public exploit code has been identified.

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 5.9 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 5.9 MEDIUM

Requires a host app that binds attacker-controlled parameter counts >32768 (AC:H), no auth to the driver (PR:N), and heap corruption yields a crash so only availability impact (A:H).

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

Primary rating from Vendor (PostgreSQL).

CVSS VectorVendor: PostgreSQL

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

Lifecycle Timeline

1
Patch available
Oct 12, 2026 - 19:03 EUVD

DescriptionCVE.org

Integer wraparound in psqlODBC SQLBindParameter allows an application, or an attacker who controls how many parameters the application binds on one statement, to corrupt heap memory. psqlODBC stores the binding count in a signed 16-bit field. Binding parameter number 32768 wraps that count to -32768. Binding parameter 32769 then writes about 2.5 MB of zeros starting 1.25 MB before the binding array, which crashes the application or leaves it running on a corrupted heap. Applications that build parameter lists from untrusted input, such as an IN (?, ?, ...) list, are exposed. Versions before psqlODBC 18.00.0005 are affected.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Medium
official PostgreSQL ODBC driver, common for ODBC apps but not universal
Social Media
1
Sightings
Data Quality
5 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 0.2%
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

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

Attack Technique

Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.

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

Vendor StatusVendor

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