Описание
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.
A flaw in PostgreSQL allows users to bypass row-level security (RLS) due to incomplete tracking of user role and database ownership changes. Active sessions may continue using cached, outdated security policies, enabling unauthorized read or write access to data. Exploitation requires the attacker to understand the application's specific privilege removal configurations.
Отчет
This vulnerability in PostgreSQL is of Moderate impact. It allows a low-privileged authenticated user to bypass row-level security policies due to stale cached plans, potentially leading to unauthorized data access or modification. Exploitation requires specific timing and an attacker to understand the application's privilege management and row security policy patterns, making it a complex attack.
Меры по смягчению последствий
To mitigate this issue, ensure that all active PostgreSQL sessions are terminated or restarted after any changes to role membership, role attributes, or database ownership that affect row-level security policies. This action forces the invalidation of stale cached security policies, preventing unauthorized data access. Note that terminating sessions will disrupt active user connections.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Red Hat Enterprise Linux 10 | postgresql16 | Fix deferred | ||
| Red Hat Enterprise Linux 10 | postgresql18 | Fix deferred | ||
| Red Hat Enterprise Linux 6 | postgresql | Not affected | ||
| Red Hat Enterprise Linux 7 | postgresql | Not affected | ||
| Red Hat Enterprise Linux 8 | postgresql:12/postgresql | Fix deferred | ||
| Red Hat Enterprise Linux 8 | postgresql:15/postgresql | Fix deferred | ||
| Red Hat Enterprise Linux 8 | postgresql:16/postgresql | Fix deferred | ||
| Red Hat Enterprise Linux 9 | postgresql | Fix deferred | ||
| Red Hat Enterprise Linux 9 | postgresql:15/postgresql | Fix deferred | ||
| Red Hat Enterprise Linux 9 | postgresql:16/postgresql | Fix deferred |
Показывать по
Дополнительная информация
Статус:
EPSS
4.2 Medium
CVSS3
Связанные уязвимости
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.
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.
PostgreSQL row security caching disregards role modifications
Incomplete tracking in PostgreSQL of changes to role membership, role ...
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.
EPSS
4.2 Medium
CVSS3