Every CVE Search/ Get API key

CVE-2026-120065

psqlODBC does not escape a server-supplied column name in its updatable-cursor queries

7.1 HighFix available

For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
High
Privileges needed
Low
User interaction
Required

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
High

Exploit likelihood

0.29%Unchanged since Nov 3, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.1

psqlODBC does not escape a server-supplied column name in its updatable-cursor queries

For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.

Record
CVE-2026-120065
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-89
Updated
2026-11-02
EUVDEUVD-2026-115378 7.1

For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.

Record
EUVD-2026-115378
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-03
GitHub AdvisoriesGHSA-gv3c-v55x-3f23 7.1

For an updatable cursor over a table without OIDs that has an auto-increment int4 column,...

For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.

Record
GHSA-gv3c-v55x-3f23
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-89
Updated
2026-11-03
NVD 7.1

For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.

Record
CVE-2026-120065
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-89
Updated
2026-11-03
OSV 7.1

psqlODBC does not escape a server-supplied column name in its updatable-cursor queries

For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.

Record
CVE-2026-120065
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Weakness
CWE-89
Updated
2026-11-08
OSVDEBIAN-CVE-2026-120065 7.1

For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.

Record
DEBIAN-CVE-2026-120065
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H
Updated
2026-11-05
OSVUBUNTU-CVE-2026-120065 7.1

For an updatable cursor over a table without OIDs that has an auto-increment int4 column, psqlODBC uses that column to identify rows. It places the column's name, as reported by the server, between double quotes in its keyset queries and in the WHERE clause of its positioned SELECT, UPDATE, and DELETE statements, without doubling any double quote in the name. A column name that contains a double quote therefore changes the SQL that the driver runs with the application's privileges, including which rows a positioned UPDATE or DELETE affects. Any database user who can create a table that the application reads with an updatable cursor can choose such a name, and so can a server not trusted under current SSL settings. Versions before psqlODBC 18.00.0006 are affected.

Record
UBUNTU-CVE-2026-120065
CVSS 3.1
7.1 HighCVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/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

Affected packages
PackageAffectedFixed
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 13 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-11:18.00.0006-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 8 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-11:18.00.0006-1
None known
psqlodbc
Debian: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 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
1:18.00.0006-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
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
From an advisory covering 11 CVEs
before 18.00.0006-1.1
18.00.0006-1.1

History

History
RecordedChangedSources
aliases, referencesOSV
affected, aliases, referencesOSV
affected, factsOSV
affected, aliases, facts, referencesOSV
affected, aliases, referencesOSV
aliases, publishedEUVD
aliases, referencesGitHub Advisories, NVD
first indexedCVE List

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

In short

CVE-2026-120065 is a high vulnerability (CVSS 7.1) 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.29%, the 22nd percentile. Fixed in psqlodbc 1:18.00.0006-1.

References

Show 13 moreShow less
MoveEnter Open