{"api_version":"1","generated_at":"2026-06-02T15:25:41+00:00","cve":"CVE-2026-6477","urls":{"html":"https://cve.report/CVE-2026-6477","api":"https://cve.report/api/cve/CVE-2026-6477.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-6477","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-6477"},"summary":{"title":"PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory","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.","state":"PUBLISHED","assigner":"PostgreSQL","published_at":"2026-05-14 14:16:25","updated_at":"2026-05-18 15:03:26"},"problem_types":["CWE-242","CWE-242 Use of Inherently Dangerous Function"],"metrics":[{"version":"3.1","source":"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007","type":"Secondary","score":"8.8","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"CVSS","score":"8.8","severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","data":{"baseScore":8.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","version":"3.1"}}],"references":[{"url":"https://www.postgresql.org/support/security/CVE-2026-6477/","name":"https://www.postgresql.org/support/security/CVE-2026-6477/","refsource":"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007","tags":["Patch","Vendor Advisory"],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-6477","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-6477","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"n/a","product":"PostgreSQL","version":"affected 18 18.4 rpm","platforms":[]},{"source":"CNA","vendor":"n/a","product":"PostgreSQL","version":"affected 17 17.10 rpm","platforms":[]},{"source":"CNA","vendor":"n/a","product":"PostgreSQL","version":"affected 16 16.14 rpm","platforms":[]},{"source":"CNA","vendor":"n/a","product":"PostgreSQL","version":"affected 15 15.18 rpm","platforms":[]},{"source":"CNA","vendor":"n/a","product":"PostgreSQL","version":"affected 14.23 rpm","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[{"source":"CNA","title":"","value":"use PQexecPrepared(), not PQfn(..., result_is_int=0, ...) or its lo_* wrappers","time":"","lang":"en"}],"exploits":[],"credits":[{"source":"CNA","value":"The PostgreSQL project thanks Yu Kunpeng and Martin Heistermann for reporting this problem.","lang":"en"}],"nvd_cpes":[{"cve_year":"2026","cve_id":"6477","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"postgresql","cpe5":"postgresql","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"6477","cve":"CVE-2026-6477","epss":"0.000470000","percentile":"0.144780000","score_date":"2026-05-25","updated_at":"2026-05-26 00:10:59"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"adp":[{"metrics":[{"other":{"content":{"id":"CVE-2026-6477","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","timestamp":"2026-05-14T00:00:00+00:00","version":"2.0.3"},"type":"ssvc"}}],"providerMetadata":{"dateUpdated":"2026-05-15T03:56:18.668Z","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP"},"title":"CISA ADP Vulnrichment"}],"cna":{"affected":[{"defaultStatus":"unaffected","product":"PostgreSQL","vendor":"n/a","versions":[{"lessThan":"18.4","status":"affected","version":"18","versionType":"rpm"},{"lessThan":"17.10","status":"affected","version":"17","versionType":"rpm"},{"lessThan":"16.14","status":"affected","version":"16","versionType":"rpm"},{"lessThan":"15.18","status":"affected","version":"15","versionType":"rpm"},{"lessThan":"14.23","status":"affected","version":"0","versionType":"rpm"}]}],"credits":[{"lang":"en","value":"The PostgreSQL project thanks Yu Kunpeng and Martin Heistermann for reporting this problem."}],"descriptions":[{"lang":"en","value":"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."}],"metrics":[{"cvssV3_1":{"baseScore":8.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","version":"3.1"},"format":"CVSS"}],"problemTypes":[{"descriptions":[{"cweId":"CWE-242","description":"Use of Inherently Dangerous Function","lang":"en","type":"CWE"}]}],"providerMetadata":{"dateUpdated":"2026-05-14T13:00:12.497Z","orgId":"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007","shortName":"PostgreSQL"},"references":[{"url":"https://www.postgresql.org/support/security/CVE-2026-6477/"}],"title":"PostgreSQL libpq lo_* functions let server superuser overwrite client stack memory","workarounds":[{"lang":"en","value":"use PQexecPrepared(), not PQfn(..., result_is_int=0, ...) or its lo_* wrappers"}]}},"cveMetadata":{"assignerOrgId":"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007","assignerShortName":"PostgreSQL","cveId":"CVE-2026-6477","datePublished":"2026-05-14T13:00:12.497Z","dateReserved":"2026-04-17T00:44:19.965Z","dateUpdated":"2026-05-15T03:56:18.668Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-05-14 14:16:25","lastModifiedDate":"2026-05-18 15:03:26","problem_types":["CWE-242","CWE-242 Use of Inherently Dangerous Function"],"metrics":{"cvssMetricV31":[{"source":"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H","baseScore":8.8,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":2.8,"impactScore":5.9}]},"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:postgresql:postgresql:*:*:*:*:*:*:*:*","versionEndExcluding":"14.23","matchCriteriaId":"C432AE18-DD50-40EB-B46A-9283F30081DA"},{"vulnerable":true,"criteria":"cpe:2.3:a:postgresql:postgresql:*:*:*:*:*:*:*:*","versionStartIncluding":"15.0","versionEndExcluding":"15.18","matchCriteriaId":"9D8D994F-ABAB-4AC2-992F-320F4868698D"},{"vulnerable":true,"criteria":"cpe:2.3:a:postgresql:postgresql:*:*:*:*:*:*:*:*","versionStartIncluding":"16.0","versionEndExcluding":"16.14","matchCriteriaId":"B58AE3D3-E1C9-45D2-AA92-A3D135B77A8A"},{"vulnerable":true,"criteria":"cpe:2.3:a:postgresql:postgresql:*:*:*:*:*:*:*:*","versionStartIncluding":"17.0","versionEndExcluding":"17.10","matchCriteriaId":"A19538E9-DBB9-4396-AC04-17943E82C411"},{"vulnerable":true,"criteria":"cpe:2.3:a:postgresql:postgresql:*:*:*:*:*:*:*:*","versionStartIncluding":"18.0","versionEndExcluding":"18.4","matchCriteriaId":"F8DB17ED-67AD-41F2-B272-27AF5B4FA2B0"}]}]}]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"6477","Ordinal":"1","Title":"PostgreSQL libpq lo_* functions let server superuser overwrite c","CVE":"CVE-2026-6477","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"6477","Ordinal":"1","NoteData":"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.","Type":"Description","Title":"PostgreSQL libpq lo_* functions let server superuser overwrite c"}]}}}