CVE-2026-6477
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.
Version Information
| Affected branch | Introduced | Fixed In | Fix Published |
|---|---|---|---|
| 14 | — | 14.23 | 2026-05-14 |
| 15 | — | 15.18 | 2026-05-14 |
| 16 | — | 16.14 | 2026-05-14 |
| 17 | — | 17.10 | 2026-05-14 |
| 18 | — | 18.4 | 2026-05-14 |
CVSS 3.0
| Overall Score | 8.8 |
|---|---|
| Component | client |
| Vector | AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
First published: 2026-05-14
Historical source observations
These dated records preserve the original source claims separately from the reviewed fix list.
center · 2026-10-03 12:08:35.169032+08
- PostgreSQL 18 · Original minor coordinate: 4
- PostgreSQL 17 · Original minor coordinate: 10
- PostgreSQL 16 · Original minor coordinate: 14
- PostgreSQL 15 · Original minor coordinate: 18
- PostgreSQL 14 · Original minor coordinate: 23
pgweb · 2026-10-03 12:08:55.967155+08
- PostgreSQL 18 · Original minor coordinate: 4
- PostgreSQL 17 · Original minor coordinate: 10
- PostgreSQL 16 · Original minor coordinate: 14
- PostgreSQL 15 · Original minor coordinate: 18
- PostgreSQL 14 · Original minor coordinate: 23