PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory
Summary
| CVE | CVE-2026-6477 |
|---|---|
| State | PUBLISHED |
| Assigner | PostgreSQL |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-05-14 14:16:25 UTC |
| Updated | 2026-05-18 15:03:26 UTC |
| Description | Use of inherently dangerous function PQfn(..., result_is_int=0, ...) in PostgreSQL libpq lo_export(), lo_read(), lo_lseek64(), and lo_tell64() functions allows the server superuser to overwrite a client stack buffer with an arbitrarily-large response. Like gets(), PQfn(..., result_is_int=0, ...) stores arbitrary-length, server-determined data into a buffer of unspecified size. Because both the \lo_export command in psql and pg_dump call lo_read(), the server superuser can overwrite pg_dump or psql stack memory. Versions before PostgreSQL 18.4, 17.10, 16.14, 15.18, and 14.23 are affected. |
Risk And Classification
Primary CVSS: v3.1 8.8 HIGH from f86ef6dc-4d3a-42ad-8f28-e6d5547a5007
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
EPSS: 0.000470000 probability, percentile 0.144780000 (date 2026-05-25)
Problem Types: CWE-242 | CWE-242 Use of Inherently Dangerous Function
| Version | Source | Type | Score | Severity | Vector |
|---|---|---|---|---|---|
| 3.1 | f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 | Secondary | 8.8 | HIGH | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| 3.1 | CNA | CVSS | 8.8 | HIGH | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
CVSS v3.1 Breakdown
Attack Vector
NetworkAttack Complexity
LowPrivileges Required
NoneUser Interaction
RequiredScope
UnchangedConfidentiality
HighIntegrity
HighAvailability
HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
NVD Known Affected Configurations (CPE 2.3)
| Type | Vendor | Product | Version | Update | Edition | Language |
|---|---|---|---|---|---|---|
| Application | Postgresql | Postgresql | All | All | All | All |
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Na | PostgreSQL | affected 18 18.4 rpm | Not specified |
| CNA | Na | PostgreSQL | affected 17 17.10 rpm | Not specified |
| CNA | Na | PostgreSQL | affected 16 16.14 rpm | Not specified |
| CNA | Na | PostgreSQL | affected 15 15.18 rpm | Not specified |
| CNA | Na | PostgreSQL | affected 14.23 rpm | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| www.postgresql.org/support/security/CVE-2026-6477 | f86ef6dc-4d3a-42ad-8f28-e6d5547a5007 | www.postgresql.org | Patch, Vendor Advisory |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: The PostgreSQL project thanks Yu Kunpeng and Martin Heistermann for reporting this problem. (en)
Additional Advisory Data
Workarounds
CNA: use PQexecPrepared(), not PQfn(..., result_is_int=0, ...) or its lo_* wrappers
There are currently no legacy QID mappings associated with this CVE.