{"id":"ALPINE-CVE-2026-14666","details":"Incomplete tracking in PostgreSQL of changes to role membership, role attributes, and database ownership allows a query to continue using cached row-level security policies after those changes require a different policy, via plan reuse.  Stale policies continue until some other event invalidates the cache or connection termination ends the session.  This permits a user to complete reads and modifications that were recently permitted but now forbidden.  An attacker must tailor an attack to a particular application's pattern of privilege removal and role-specific row security policies.  Versions before PostgreSQL 18.6, 17.11, 16.15, 15.19, and 14.24 are affected.","modified":"2026-09-14T16:18:08.111956374Z","published":"2026-08-13T13:17:43.993Z","upstream":["CVE-2026-14666"],"references":[{"type":"ADVISORY","url":"https://security.alpinelinux.org/vuln/CVE-2026-14666"}],"affected":[{"package":{"name":"postgresql16","ecosystem":"Alpine:v3.21","purl":"pkg:apk/alpine/postgresql16?arch=source"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"16.15-r0"}]}],"ecosystem_specific":{},"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/alpine/ALPINE-CVE-2026-14666.json"}},{"package":{"name":"postgresql16","ecosystem":"Alpine:v3.22","purl":"pkg:apk/alpine/postgresql16?arch=source"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"16.15-r0"}]}],"ecosystem_specific":{},"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/alpine/ALPINE-CVE-2026-14666.json"}},{"package":{"name":"postgresql17","ecosystem":"Alpine:v3.21","purl":"pkg:apk/alpine/postgresql17?arch=source"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"17.11-r0"}]}],"ecosystem_specific":{},"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/alpine/ALPINE-CVE-2026-14666.json"}},{"package":{"name":"postgresql17","ecosystem":"Alpine:v3.22","purl":"pkg:apk/alpine/postgresql17?arch=source"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"17.11-r0"}]}],"ecosystem_specific":{},"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/alpine/ALPINE-CVE-2026-14666.json"}},{"package":{"name":"postgresql17","ecosystem":"Alpine:v3.23","purl":"pkg:apk/alpine/postgresql17?arch=source"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"17.11-r0"}]}],"ecosystem_specific":{},"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/alpine/ALPINE-CVE-2026-14666.json"}},{"package":{"name":"postgresql17","ecosystem":"Alpine:v3.24","purl":"pkg:apk/alpine/postgresql17?arch=source"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"17.11-r0"}]}],"ecosystem_specific":{},"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/alpine/ALPINE-CVE-2026-14666.json"}},{"package":{"name":"postgresql18","ecosystem":"Alpine:v3.23","purl":"pkg:apk/alpine/postgresql18?arch=source"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"18.5-r0"}]}],"ecosystem_specific":{},"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/alpine/ALPINE-CVE-2026-14666.json"}},{"package":{"name":"postgresql18","ecosystem":"Alpine:v3.24","purl":"pkg:apk/alpine/postgresql18?arch=source"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"18.5-r0"}]}],"ecosystem_specific":{},"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/alpine/ALPINE-CVE-2026-14666.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N"}]}