Vulnerability Details CVE-2026-14666
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.5, 17.11, 16.15, 15.19, and 14.24 are affected.
Exploit prediction scoring system (EPSS) score
EPSS Score 0.002
EPSS Ranking 10.8%
CVSS Severity
CVSS v3 Score 4.2
Products affected by CVE-2026-14666
-
cpe:2.3:a:postgresql:postgresql:14.0
-
cpe:2.3:a:postgresql:postgresql:14.1
-
cpe:2.3:a:postgresql:postgresql:14.10
-
cpe:2.3:a:postgresql:postgresql:14.11
-
cpe:2.3:a:postgresql:postgresql:14.12
-
cpe:2.3:a:postgresql:postgresql:14.13
-
cpe:2.3:a:postgresql:postgresql:14.14
-
cpe:2.3:a:postgresql:postgresql:14.15
-
cpe:2.3:a:postgresql:postgresql:14.16
-
cpe:2.3:a:postgresql:postgresql:14.17
-
cpe:2.3:a:postgresql:postgresql:14.18
-
cpe:2.3:a:postgresql:postgresql:14.19
-
cpe:2.3:a:postgresql:postgresql:14.2
-
cpe:2.3:a:postgresql:postgresql:14.20
-
cpe:2.3:a:postgresql:postgresql:14.21
-
cpe:2.3:a:postgresql:postgresql:14.22
-
cpe:2.3:a:postgresql:postgresql:14.23
-
cpe:2.3:a:postgresql:postgresql:14.3
-
cpe:2.3:a:postgresql:postgresql:14.4
-
cpe:2.3:a:postgresql:postgresql:14.5
-
cpe:2.3:a:postgresql:postgresql:14.6
-
cpe:2.3:a:postgresql:postgresql:14.7
-
cpe:2.3:a:postgresql:postgresql:14.8
-
cpe:2.3:a:postgresql:postgresql:14.9
-
cpe:2.3:a:postgresql:postgresql:15.0
-
cpe:2.3:a:postgresql:postgresql:15.1
-
cpe:2.3:a:postgresql:postgresql:15.10
-
cpe:2.3:a:postgresql:postgresql:15.11
-
cpe:2.3:a:postgresql:postgresql:15.12
-
cpe:2.3:a:postgresql:postgresql:15.13
-
cpe:2.3:a:postgresql:postgresql:15.14
-
cpe:2.3:a:postgresql:postgresql:15.15
-
cpe:2.3:a:postgresql:postgresql:15.16
-
cpe:2.3:a:postgresql:postgresql:15.17
-
cpe:2.3:a:postgresql:postgresql:15.18
-
cpe:2.3:a:postgresql:postgresql:15.2
-
cpe:2.3:a:postgresql:postgresql:15.3
-
cpe:2.3:a:postgresql:postgresql:15.4
-
cpe:2.3:a:postgresql:postgresql:15.5
-
cpe:2.3:a:postgresql:postgresql:15.6
-
cpe:2.3:a:postgresql:postgresql:15.7
-
cpe:2.3:a:postgresql:postgresql:15.8
-
cpe:2.3:a:postgresql:postgresql:15.9
-
cpe:2.3:a:postgresql:postgresql:16.0
-
cpe:2.3:a:postgresql:postgresql:16.1
-
cpe:2.3:a:postgresql:postgresql:16.10
-
cpe:2.3:a:postgresql:postgresql:16.11
-
cpe:2.3:a:postgresql:postgresql:16.12
-
cpe:2.3:a:postgresql:postgresql:16.13
-
cpe:2.3:a:postgresql:postgresql:16.14
-
cpe:2.3:a:postgresql:postgresql:16.2
-
cpe:2.3:a:postgresql:postgresql:16.3
-
cpe:2.3:a:postgresql:postgresql:16.4
-
cpe:2.3:a:postgresql:postgresql:16.5
-
cpe:2.3:a:postgresql:postgresql:16.6
-
cpe:2.3:a:postgresql:postgresql:16.7
-
cpe:2.3:a:postgresql:postgresql:16.8
-
cpe:2.3:a:postgresql:postgresql:16.9
-
cpe:2.3:a:postgresql:postgresql:17.0
-
cpe:2.3:a:postgresql:postgresql:17.1
-
cpe:2.3:a:postgresql:postgresql:17.10
-
cpe:2.3:a:postgresql:postgresql:17.2
-
cpe:2.3:a:postgresql:postgresql:17.3
-
cpe:2.3:a:postgresql:postgresql:17.4
-
cpe:2.3:a:postgresql:postgresql:17.5
-
cpe:2.3:a:postgresql:postgresql:17.6
-
cpe:2.3:a:postgresql:postgresql:17.7
-
cpe:2.3:a:postgresql:postgresql:17.8
-
cpe:2.3:a:postgresql:postgresql:17.9