CVE-2026-6477

PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory

State
Published
Severity
8.8 High
Published
May 14, 2026
Updated
Aug 25, 2026
Reserved
Apr 17, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.18.8 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HPostgreSQL
3.18.4 HighCVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:Hredhat-SADP

Weaknesses

  • CWE-242 Use of Inherently Dangerous Function
  • CWE-120 Buffer Copy without Checking Size of Input ('Classic Buffer Overflow')

Affected Products

ProductVersions
PostgreSQLn/a
  • 18 to before 18.4Affected
  • 17 to before 17.10Affected
  • 16 to before 16.14Affected
  • 15 to before 15.18Affected
  • before 14.23Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.