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.
Advisories
Source ID Title
Debian DLA Debian DLA DLA-4646-1 postgresql-13 security update
Debian DSA Debian DSA DSA-6269-1 postgresql-15 security update
Debian DSA Debian DSA DSA-6270-1 postgresql-17 security update
Ubuntu USN Ubuntu USN USN-8294-1 PostgreSQL vulnerabilities
Fixes

Solution

No solution given by the vendor.


Workaround

use PQexecPrepared(), not PQfn(..., result_is_int=0, ...) or its lo_* wrappers

References
Link Providers
https://access.redhat.com/errata/RHSA-2026:21182 cve-icon
https://access.redhat.com/errata/RHSA-2026:22878 cve-icon
https://access.redhat.com/errata/RHSA-2026:26181 cve-icon
https://access.redhat.com/errata/RHSA-2026:26203 cve-icon
https://access.redhat.com/errata/RHSA-2026:26204 cve-icon
https://access.redhat.com/errata/RHSA-2026:26524 cve-icon
https://access.redhat.com/errata/RHSA-2026:26525 cve-icon
https://access.redhat.com/errata/RHSA-2026:26561 cve-icon
https://access.redhat.com/errata/RHSA-2026:27718 cve-icon
https://access.redhat.com/errata/RHSA-2026:27738 cve-icon
https://access.redhat.com/errata/RHSA-2026:27741 cve-icon
https://access.redhat.com/errata/RHSA-2026:27742 cve-icon
https://access.redhat.com/errata/RHSA-2026:27743 cve-icon
https://access.redhat.com/errata/RHSA-2026:28037 cve-icon
https://access.redhat.com/errata/RHSA-2026:28143 cve-icon
https://access.redhat.com/errata/RHSA-2026:28208 cve-icon
https://access.redhat.com/errata/RHSA-2026:28999 cve-icon
https://access.redhat.com/errata/RHSA-2026:29212 cve-icon
https://access.redhat.com/errata/RHSA-2026:29815 cve-icon
https://access.redhat.com/errata/RHSA-2026:29904 cve-icon
https://access.redhat.com/errata/RHSA-2026:29953 cve-icon
https://access.redhat.com/errata/RHSA-2026:32983 cve-icon
https://access.redhat.com/errata/RHSA-2026:32994 cve-icon
https://access.redhat.com/errata/RHSA-2026:33441 cve-icon
https://access.redhat.com/errata/RHSA-2026:33497 cve-icon
https://access.redhat.com/errata/RHSA-2026:34043 cve-icon
https://access.redhat.com/errata/RHSA-2026:34362 cve-icon
https://access.redhat.com/errata/RHSA-2026:34363 cve-icon
https://access.redhat.com/errata/RHSA-2026:35880 cve-icon
https://access.redhat.com/errata/RHSA-2026:42555 cve-icon
https://access.redhat.com/errata/RHSA-2026:44308 cve-icon
https://access.redhat.com/errata/RHSA-2026:44391 cve-icon
https://access.redhat.com/errata/RHSA-2026:44420 cve-icon
https://access.redhat.com/errata/RHSA-2026:44481 cve-icon
https://access.redhat.com/errata/RHSA-2026:47090 cve-icon
https://access.redhat.com/errata/RHSA-2026:49521 cve-icon
https://access.redhat.com/errata/RHSA-2026:49908 cve-icon
https://access.redhat.com/errata/RHSA-2026:49909 cve-icon
https://access.redhat.com/errata/RHSA-2026:50779 cve-icon
https://access.redhat.com/errata/RHSA-2026:50863 cve-icon
https://access.redhat.com/security/cve/CVE-2026-6477 cve-icon
https://bugzilla.redhat.com/show_bug.cgi?id=2477442 cve-icon
https://nvd.nist.gov/vuln/detail/CVE-2026-6477 cve-icon
https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-6477.json cve-icon
https://www.cve.org/CVERecord?id=CVE-2026-6477 cve-icon
https://www.postgresql.org/support/security/CVE-2026-6477/ cve-icon cve-icon cve-icon
History

Thu, 04 Jun 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-120
References
Metrics threat_severity

None

threat_severity

Important


Mon, 18 May 2026 15:15:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:postgresql:postgresql:*:*:*:*:*:*:*:*

Thu, 14 May 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Thu, 14 May 2026 15:00:00 +0000

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

Thu, 14 May 2026 13:30:00 +0000

Type Values Removed Values Added
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.
Title PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory
Weaknesses CWE-242
References
Metrics cvssV3_1

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


Projects

Sign in to view the affected projects.

cve-icon MITRE

Status: PUBLISHED

Assigner: PostgreSQL

Published:

Updated: 2026-08-06T12:08:58.310Z

Reserved: 2026-04-17T00:44:19.965Z

Link: CVE-2026-6477

cve-icon Vulnrichment

Updated: 2026-08-06T12:08:58.310Z

cve-icon NVD

Status : Modified

Published: 2026-05-14T14:16:25.347

Modified: 2026-08-06T13:18:23.780

Link: CVE-2026-6477

cve-icon Redhat

Severity : Important

Publid Date: 2026-05-14T13:00:12Z

Links: CVE-2026-6477 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-06-04T02:15:03Z

Weaknesses