CVE-2026-120067
psqlODBC stack buffer overflow copying ctid and oid values for updatable cursors
For updatable cursors, which are enabled by default, psqlODBC adds hidden ctid and, for tables with OIDs, oid columns to the query. It copies each value into a 32-byte stack buffer using the length the server sent, without checking it against the buffer size, so a value of 32 bytes or more writes past the buffer. A server not trusted under current SSL settings can send such a value. So can any database user who can create a view with its own column named ctid that the application reads with an updatable cursor. Builds with _FORTIFY_SOURCE abort; other builds overwrite adjacent stack memory. Versions before psqlODBC 18.00.0006 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
What each source reports
CVE List Score used
5.9
psqlODBC stack buffer overflow copying ctid and oid values for updatable cursors
For updatable cursors, which are enabled by default, psqlODBC adds hidden ctid and, for tables with OIDs, oid columns to the query. It copies each value into a 32-byte stack buffer using the length the server sent, without checking it against the buffer size, so a value of 32 bytes or more writes past the buffer. A server not trusted under current SSL settings can send such a value. So can any database user who can create a view with its own column named ctid that the application reads with an updatable cursor. Builds with _FORTIFY_SOURCE abort; other builds overwrite adjacent stack memory. Versions before psqlODBC 18.00.0006 are affected.
- Record
CVE-2026-120067- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-121, CWE-787
- Updated
- 2026-11-02
EUVDEUVD-2026-115380
5.9
For updatable cursors, which are enabled by default, psqlODBC adds hidden ctid and, for tables with OIDs, oid columns to the query. It copies each value into a 32-byte stack buffer using the length the server sent, without checking it against the buffer size, so a value of 32 bytes or more writes past the buffer. A server not trusted under current SSL settings can send such a value. So can any database user who can create a view with its own column named ctid that the application reads with an updatable cursor. Builds with _FORTIFY_SOURCE abort; other builds overwrite adjacent stack memory. Versions before psqlODBC 18.00.0006 are affected.
- Record
EUVD-2026-115380- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-pwrw-wjmg-cx9r
5.9
For updatable cursors, which are enabled by default, psqlODBC adds hidden ctid and, for tables...
For updatable cursors, which are enabled by default, psqlODBC adds hidden ctid and, for tables with OIDs, oid columns to the query. It copies each value into a 32-byte stack buffer using the length the server sent, without checking it against the buffer size, so a value of 32 bytes or more writes past the buffer. A server not trusted under current SSL settings can send such a value. So can any database user who can create a view with its own column named ctid that the application reads with an updatable cursor. Builds with _FORTIFY_SOURCE abort; other builds overwrite adjacent stack memory. Versions before psqlODBC 18.00.0006 are affected.
- Record
GHSA-pwrw-wjmg-cx9r- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-121
- Updated
- 2026-11-03
NVD
5.9
For updatable cursors, which are enabled by default, psqlODBC adds hidden ctid and, for tables with OIDs, oid columns to the query. It copies each value into a 32-byte stack buffer using the length the server sent, without checking it against the buffer size, so a value of 32 bytes or more writes past the buffer. A server not trusted under current SSL settings can send such a value. So can any database user who can create a view with its own column named ctid that the application reads with an updatable cursor. Builds with _FORTIFY_SOURCE abort; other builds overwrite adjacent stack memory. Versions before psqlODBC 18.00.0006 are affected.
- Record
CVE-2026-120067- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-121, CWE-787
- Updated
- 2026-11-03
OSV
5.9
psqlODBC stack buffer overflow copying ctid and oid values for updatable cursors
For updatable cursors, which are enabled by default, psqlODBC adds hidden ctid and, for tables with OIDs, oid columns to the query. It copies each value into a 32-byte stack buffer using the length the server sent, without checking it against the buffer size, so a value of 32 bytes or more writes past the buffer. A server not trusted under current SSL settings can send such a value. So can any database user who can create a view with its own column named ctid that the application reads with an updatable cursor. Builds with _FORTIFY_SOURCE abort; other builds overwrite adjacent stack memory. Versions before psqlODBC 18.00.0006 are affected.
- Record
CVE-2026-120067- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-121, CWE-787
- Updated
- 2026-11-08
OSVDEBIAN-CVE-2026-120067
5.9
For updatable cursors, which are enabled by default, psqlODBC adds hidden ctid and, for tables with OIDs, oid columns to the query. It copies each value into a 32-byte stack buffer using the length the server sent, without checking it against the buffer size, so a value of 32 bytes or more writes past the buffer. A server not trusted under current SSL settings can send such a value. So can any database user who can create a view with its own column named ctid that the application reads with an updatable cursor. Builds with _FORTIFY_SOURCE abort; other builds overwrite adjacent stack memory. Versions before psqlODBC 18.00.0006 are affected.
- Record
DEBIAN-CVE-2026-120067- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-05
OSVUBUNTU-CVE-2026-120067
5.9
For updatable cursors, which are enabled by default, psqlODBC adds hidden ctid and, for tables with OIDs, oid columns to the query. It copies each value into a 32-byte stack buffer using the length the server sent, without checking it against the buffer size, so a value of 32 bytes or more writes past the buffer. A server not trusted under current SSL settings can send such a value. So can any database user who can create a view with its own column named ctid that the application reads with an updatable cursor. Builds with _FORTIFY_SOURCE abort; other builds overwrite adjacent stack memory. Versions before psqlODBC 18.00.0006 are affected.
- Record
UBUNTU-CVE-2026-120067- CVSS 3.1
- 5.9 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-05
OSVopenSUSE-SU-2026:12472-1 No score
psqlODBC-18.00.0006-1.1 on GA media
These are all security issues fixed in the psqlODBC-18.00.0006-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12472-1- Updated
- 2026-11-07
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
psqlodbcDebian: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 13 moreShow less1: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-11:18.00.0006-1 |
None known |
psqlodbcDebian: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 8 moreShow less1: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-11:18.00.0006-1 |
None known |
psqlodbcDebian:14 |
before 1:18.00.0006-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 7 moreShow less1: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 |
1:18.00.0006-1 |
psqlodbcUbuntu:16.04:LTS |
All versions, plus listed versions 1:09.03.0300-1 |
None known |
psqlodbcUbuntu:18.04:LTS |
All versions, plus listed versions 1:09.06.0410-11:10.00.0000-11:10.01.0000-1 |
None known |
psqlodbcUbuntu:20.04:LTS |
All versions, plus listed versions 1:11.00.0000-11:12.00.0000-11:12.01.0000-1 |
None known |
psqlodbcUbuntu:22.04:LTS |
All versions, plus listed versions 1:13.00.0000-11:13.02.0000-11:13.02.0000-2 |
None known |
psqlodbcUbuntu:24.04:LTS |
All versions, plus listed versions 1:15.00.0000-11:16.00.0000-1 |
None known |
psqlodbcUbuntu:26.10 |
All versions, plus listed versions 1:17.00.0007-11:18.00.0001-11:18.00.0002-1 |
None known |
psqlodbcUbuntu:26.04:LTS |
All versions, plus listed versions 1:17.00.0006-21:17.00.0007-1 |
None known |
psqlODBCopenSUSE:Tumbleweed From an advisory covering 11 CVEs |
before 18.00.0006-1.1 | 18.00.0006-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases, references | OSV | |
| affected, aliases, references | OSV | |
| affected, facts | OSV | |
| affected, aliases, facts, references | OSV | |
| affected, aliases, references | OSV | |
| aliases, published | EUVD | |
| aliases, references | GitHub Advisories, NVD | |
| first indexed | CVE List |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-120067 is a medium vulnerability (CVSS 5.9) in Postgresql Psqlodbc, published November 2, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.35%, the 28th percentile. Fixed in psqlodbc 1:18.00.0006-1.
References
github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-3r96-h2q4-6pxh
nvd.nist.gov/vuln/detail/CVE-2026-120067
github.com/advisories/GHSA-pwrw-wjmg-cx9r
github.com/CVEProject/cvelistV5/tree/main/cves/2026/120xxx/CVE-2026-120067.json
github.com/postgresql-interfaces/psqlodbc
security-tracker.debian.org/tracker/CVE-2026-120067
Show 13 moreShow less
ubuntu.com/security/CVE-2026-120067
cve.org/CVERecord?id=CVE-2026-120067
suse.com/security/cve/CVE-2026-120057
suse.com/security/cve/CVE-2026-120058
suse.com/security/cve/CVE-2026-120059
suse.com/security/cve/CVE-2026-120060
suse.com/security/cve/CVE-2026-120061
suse.com/security/cve/CVE-2026-120062
suse.com/security/cve/CVE-2026-120063
suse.com/security/cve/CVE-2026-120064
suse.com/security/cve/CVE-2026-120065
suse.com/security/cve/CVE-2026-120066
suse.com/security/cve/CVE-2026-120067