Every CVE Search/ Get API key

CVE-2026-109448

psqlODBC SQLBindParameter heap memory corruption when binding more than 32767 parameters

5.9 MediumFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.22%Unchanged since Oct 13, 2026
90%50%10%1%

What each source reports

CVE List Score used 5.9

psqlODBC SQLBindParameter heap memory corruption when binding more than 32767 parameters

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.

Record
CVE-2026-109448
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-190, CWE-124
Updated
2026-11-02
EUVDEUVD-2026-97731 5.9

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.

Record
EUVD-2026-97731
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
NVD 5.9

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.

Record
CVE-2026-109448
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-124, CWE-190
Updated
2026-11-02
OSVBELL-CVE-2026-109448 5.9
Record
BELL-CVE-2026-109448
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSV 5.9

psqlODBC SQLBindParameter heap memory corruption when binding more than 32767 parameters

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.

Record
CVE-2026-109448
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-124, CWE-190
Updated
2026-11-02
OSVDEBIAN-CVE-2026-109448 5.9

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.

Record
DEBIAN-CVE-2026-109448
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVUBUNTU-CVE-2026-109448 5.9

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.

Record
UBUNTU-CVE-2026-109448
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Updated
2026-11-02
OSVopenSUSE-SU-2026:12135-1 No score

psqlODBC-18.00.0005-1.1 on GA media

These are all security issues fixed in the psqlODBC-18.00.0005-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:12135-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:22122-1 No score

Security update for psqlODBC

This update for psqlODBC fixes the following issues:

Changes in psqlODBC:

Update to 18.00.0005:

  • https://odbc.postgresql.org/docs/release.html
  • Fix heap memory corruption when an application binds more than 32767 parameters on a single statement. SQLBindParameter now rejects parameter numbers outside 1..32767 with SQLSTATE 07009 (CVE-2026-109448, bsc#1285073).
  • Fix the placeholder cast being truncated from parameter 1000 on, which failed with 'type "timestam" does not exist'.
  • Report the largest column size instead of SQL_NO_TOTAL (-4) as COLUMN_SIZE for bytea in SQLGetTypeInfo, which broke bytea parameters through MSDASQL.
  • Changes in 18.00.0004:

    • Fix the result-conversions regression test on big-endian systems.
  • Changes in 18.00.0003:

    • Report SQLSTATE 22003 for out-of-range integer conversions instead of silently returning the wrapped low bits.
    • Fix statement level rollback (Protocol=7.4-2) discarding the whole transaction on a syntax error.
    • Do not wrap internal queries in a savepoint at rollback-on-error level 0 (Protocol=7.4-0), which lost transactions on servers without SAVEPOINT support.
    • Redact the database password (ODBC PWD and libpq pqopt password) in debug logs.
    • Fix hang on COPY ... FROM STDIN / TO STDOUT: report it as unsupported and keep the connection usable.
    • Fix 'infinity'/'-infinity' dates being silently returned as today's date.
    • Document the connection string escaping rules.
  • Changes in 18.00.0002:

    • Use a signed type for the error status.
    • Redact sensitive connection parameters in the driver logs.
    • Fix double free / heap corruption during SQLDisconnect cleanup.
    • Clear PGresults from per-query rollback.
    • Validate UTF-16 surrogate pairs before combining them.
    • Pass SQLSetDescRec field values correctly.
    • Avoid reading before leading string literals.
    • Detach freed application descriptors from statements.
    • Reject invalid SQLPutData lengths.
    • Reject overlong cursor names.
    • Fix version reporting.
    • Handle ARD bookmark allocation failure.
    • Validate percent escapes before decoding connection string values.
    • Avoid reading past the end of conn_settings.
    • Fix stack buffer overflow in getPrecisionPart().
    • Fix SQLPrimaryKeys to exclude INCLUDE columns from the result.
  • Changes in 18.00.0000, 18.00.0001 and 17.00.0010:

    • No code changes from 17.00.0009.
  • Changes in 17.00.0009:

    • Fix the test suite for PostgreSQL 19, where standard_conforming_strings is always on.
    • Upgrade the GitHub Actions workflow: use prebuilt PostgreSQL binaries, parallel matrix builds and a separate release job.
  • Update to 17.00.0008:

Record
openSUSE-SU-2026:22122-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
psqlodbc
Alpaquita:23
16.00.0000-r0 and later None known
psqlodbc
Alpaquita:25
16.00.0005-r0 and later None known
psqlodbc
Alpaquita:stream
16.00.0005-r0 and later None known
psqlodbc
Debian:12
All versions, plus listed versions
1:13.02.0000-21:15.00.0000-11:16.00.0000-11:16.00.0005-11:17.00.0004-1
Show 12 moreShow less
1:17.00.0004-21:17.00.0005-11:17.00.0006-11:17.00.0006-21:17.00.0007-11:17.00.0008-11:18.00.0001-11:18.00.0002-11:18.00.0003-11:18.00.0003-21:18.00.0004-11:18.00.0005-1
None known
psqlodbc
Debian:13
All versions, plus listed versions
1:17.00.0004-21:17.00.0005-11:17.00.0006-11:17.00.0006-21:17.00.0007-1
Show 7 moreShow less
1:17.00.0008-11:18.00.0001-11:18.00.0002-11:18.00.0003-11:18.00.0003-21:18.00.0004-11:18.00.0005-1
None known
psqlodbc
Debian:14
before 1:18.00.0005-1, plus listed versions
1:17.00.0004-21:17.00.0005-11:17.00.0006-11:17.00.0006-21:17.00.0007-1
Show 6 moreShow less
1:17.00.0008-11:18.00.0001-11:18.00.0002-11:18.00.0003-11:18.00.0003-21:18.00.0004-1
1:18.00.0005-1
psqlodbc
Ubuntu:16.04:LTS
All versions, plus listed versions
1:09.03.0300-1
None known
psqlodbc
Ubuntu:18.04:LTS
All versions, plus listed versions
1:09.06.0410-11:10.00.0000-11:10.01.0000-1
None known
psqlodbc
Ubuntu:20.04:LTS
All versions, plus listed versions
1:11.00.0000-11:12.00.0000-11:12.01.0000-1
None known
psqlodbc
Ubuntu:22.04:LTS
All versions, plus listed versions
1:13.00.0000-11:13.02.0000-11:13.02.0000-2
None known
Show 5 moreShow less
Affected packages
PackageAffectedFixed
psqlodbc
Ubuntu:24.04:LTS
All versions, plus listed versions
1:15.00.0000-11:16.00.0000-1
None known
psqlodbc
Ubuntu:26.10
All versions, plus listed versions
1:17.00.0007-11:18.00.0001-11:18.00.0002-1
None known
psqlodbc
Ubuntu:26.04:LTS
All versions, plus listed versions
1:17.00.0006-21:17.00.0007-1
None known
psqlODBC
openSUSE:Tumbleweed
before 18.00.0005-1.1
18.00.0005-1.1
psqlODBC
openSUSE:Leap 16.0
before 18.00.0005-bp160.1.1
18.00.0005-bp160.1.1

History

History
RecordedChangedSources
first indexedCVE List, EUVD, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-109448 is a medium vulnerability (CVSS 5.9) in Postgresql Psqlodbc, published October 12, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.22%, the 12th percentile. Fixed in psqlodbc 1:18.00.0005-1.

References

Show 4 moreShow less
MoveEnter Open