{"affected":[{"defaultStatus":"unaffected","product":"PostgreSQL","source":"CNA: PostgreSQL","vendor":"n/a","versions":[{"lessThan":"18.7","status":"affected","version":"18","versionType":"rpm"},{"lessThan":"17.12","status":"affected","version":"17","versionType":"rpm"},{"lessThan":"16.16","status":"affected","version":"16","versionType":"rpm"},{"lessThan":"15.20","status":"affected","version":"15","versionType":"rpm"},{"lessThan":"14.25","status":"affected","version":"0","versionType":"rpm"}]}],"cveId":"CVE-2026-120154","cwes":["CWE-424"],"description":"Improper protection in PostgreSQL INSERT ... ON CONFLICT allows an attacker having INSERT, UPDATE, and applicable SELECT privileges on the table to read every row despite row security policies, via iterated INSERT ... ON CONFLICT DO UPDATE.  Unlike CVE-2026-16237, this does not facilitate improper writes.  Versions before PostgreSQL 18.7, 17.12, 16.16, 15.20, and 14.25 are affected.","epss":null,"exploits":[],"kev":null,"metrics":[{"score":4.3,"severity":"medium","source":"CNA: PostgreSQL","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N","version":"3.1"}],"modifiedAt":1794492929579,"publishedAt":1794492929579,"references":[{"source":"CNA: PostgreSQL","tags":[],"url":"https://www.postgresql.org/support/security/CVE-2026-120154/"}],"remediation":[],"revision":"96daef12503777b2b19fb3d35cb7412cfed59c3a92d02434f2107c5b997466d6","sources":[{"modifiedAt":1794492929579,"name":"CNA: PostgreSQL","retrievedAt":1794496241560,"url":"https://www.cve.org/CVERecord?id=CVE-2026-120154"}],"ssvc":null,"status":"published","title":"PostgreSQL INSERT ... ON CONFLICT can read rows despite row security policies","updatedAt":1794496241560}