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.
| Affected Version | Fixed In | Fix Published |
|---|---|---|
| 18 | 18.5 | 2026-08-13 |
| 17 | 17.11 | 2026-08-13 |
| 16 | 16.15 | 2026-08-13 |
| 15 | 15.19 | 2026-08-13 |
| 14 | 14.24 | 2026-08-13 |
For more information about PostgreSQL versioning, please visit the versioning page.
| Overall Score | 4.2 |
|---|---|
| Component | core server |
| Vector | AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N |
If you wish to report a new security vulnerability in PostgreSQL, please send an email to security@postgresql.org.
For reporting non-security bugs, please see the Report a Bug page.