CVE-2026-14666 PUBLISHED

PostgreSQL row security caching disregards role modifications

Assigner: PostgreSQL
Reserved: 03.07.2026 Published: 13.08.2026 Updated: 13.08.2026

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.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
CVSS Score: 4.2

Product Status

Vendor n/a
Product PostgreSQL
Versions Default: unaffected
  • affected from 18 to 18.5 (excl.)
  • affected from 17 to 17.11 (excl.)
  • affected from 16 to 16.15 (excl.)
  • affected from 15 to 15.19 (excl.)
  • affected from 0 to 14.24 (excl.)

Affected Configurations

application uses row security policies that react to the current role, and application modifies roles to change the applicable policies

Credits

  • The PostgreSQL project thanks Staroverov Ilja and Shinya Kato for reporting this problem.

References

Problem Types

  • Improper Preservation of Consistency Between Independent Representations of Shared State CWE