Description
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.
Published: 2026-10-12
Score: 5.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Heap Memory Corruption
Action: Patch
AI Analysis

Impact

An integer wraparound in the psqlODBC SQLBindParameter function causes the driver to store the binding count in a signed 16‑bit field. When a caller attempts to bind parameter 32768, the count wraps from 32767 to –32768, and binding parameter 32769 writes a large block of zeros starting ahead of the binding array. The resulting heap corruption can make the application crash or leave it running with corrupted heap structures. The flaw is a classic heap overflow (CWE‑124) and a signed overflow (CWE‑190).

Affected Systems

All PostgreSQL psqlODBC drivers earlier than version 18.00.0005 are affected. The issue is isolated to the psqlODBC driver; the core PostgreSQL database is not impacted. Applications that build large parameter lists from external input—such as an IN (…) clause—are exposed, especially when they do not validate the number of parameters before binding.

Risk and Exploitability

The CVSS score of 5.9 indicates moderate severity. No EPSS score is reported, and the vulnerability is not listed in the CISA KEV catalogue. An attacker who can influence the number of parameters bound in a single statement can trigger the heap corruption by supplying more than 32,767 parameters. While the primary consequence is a crash or corrupted heap, the lack of input validation in affected applications increases the risk of exploitation in practice.

Generated by OpenCVE AI on October 12, 2026 at 19:53 UTC.

Remediation

Vendor Solution

Upgrade to psqlODBC 18.00.0005 or later. SQLBindParameter now rejects parameter numbers outside 1..32767 with SQLSTATE 07009 (invalid descriptor index).


Vendor Workaround

Do not bind more than 32767 parameters on a single statement. Limit the number of parameters an application builds from external input, or pass large value lists as a single array parameter, for example = ANY(?).


OpenCVE Recommended Actions

  • Upgrade to psqlODBC 18.00.0005 or later, which rejects parameter numbers outside 1..32767 and returns SQLSTATE 07009.
  • Limit parameter counts in application code; avoid binding more than 32,767 parameters per statement.
  • When feasible, transform large value lists into a single array parameter (e.g., using = ANY(?)) to avoid bindings beyond the safe limit.

Generated by OpenCVE AI on October 12, 2026 at 19:53 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 16 Oct 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 13 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 12 Oct 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Postgresql
Postgresql psqlodbc
Vendors & Products Postgresql
Postgresql psqlodbc

Mon, 12 Oct 2026 18:00:00 +0000

Type Values Removed Values Added
Description 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.
Title psqlODBC SQLBindParameter heap memory corruption when binding more than 32767 parameters
Weaknesses CWE-124
CWE-190
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

Postgresql Psqlodbc
cve-icon MITRE

Status: PUBLISHED

Assigner: PostgreSQL

Published:

Updated: 2026-10-16T17:48:46.624Z

Reserved: 2026-10-12T16:34:39.636Z

Link: CVE-2026-109448

cve-icon Vulnrichment

Updated: 2026-10-16T17:48:33.827Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-12T18:17:22.633

Modified: 2026-10-16T18:17:30.940

Link: CVE-2026-109448

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-12T17:42:59Z

Links: CVE-2026-109448 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-12T20:30:14Z

Weaknesses
  • CWE-124

    Buffer Underwrite ('Buffer Underflow')

  • CWE-190

    Integer Overflow or Wraparound