{"id":"CVE-2024-10976","details":"Incomplete tracking in PostgreSQL of tables with row security allows a reused query to view or change different rows from those intended.  CVE-2023-2455 and CVE-2016-2193 fixed most interaction between row security and user ID changes.  They missed cases where a subquery, WITH query, security invoker view, or SQL-language function references a table with a row-level security policy.  This has the same consequences as the two earlier CVEs.  That is to say, it leads to potentially incorrect policies being applied in cases where role-specific policies are used and a given query is planned under one role and then executed under other roles.  This scenario can happen under security definer functions or when a common user and query is planned initially and then re-used across multiple SET ROLEs.  Applying an incorrect policy may permit a user to complete otherwise-forbidden reads and modifications.  This affects only databases that have used CREATE POLICY to define a row security policy.  An attacker must tailor an attack to a particular application's pattern of query plan reuse, user ID changes, and role-specific row security policies.  Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.","aliases":["BIT-postgresql-2024-10976"],"modified":"2026-03-11T13:49:03.814624Z","published":"2024-11-14T13:15:03.793Z","related":["ALSA-2024:10785","ALSA-2024:10787","ALSA-2024:10788","ALSA-2024:10791","ALSA-2024:10830","ALSA-2024:10831","ALSA-2024:10832","CGA-pfg6-v83c-qh4q","MGASA-2024-0372","RLSA-2024:10832","SUSE-SU-2024:4052-1","SUSE-SU-2024:4063-1","SUSE-SU-2024:4095-1","SUSE-SU-2024:4096-1","SUSE-SU-2024:4097-1","SUSE-SU-2024:4098-1","SUSE-SU-2024:4099-1","SUSE-SU-2024:4114-1","SUSE-SU-2024:4118-1","SUSE-SU-2024:4173-1","SUSE-SU-2024:4174-1","SUSE-SU-2024:4175-1","SUSE-SU-2024:4176-1","SUSE-SU-2025:01799-1","openSUSE-SU-2024:14501-1","openSUSE-SU-2024:14502-1","openSUSE-SU-2024:14503-1","openSUSE-SU-2024:14504-1","openSUSE-SU-2024:14505-1","openSUSE-SU-2024:14506-1"],"references":[{"type":"WEB","url":"https://lists.debian.org/debian-lts-announce/2024/11/msg00011.html"},{"type":"ADVISORY","url":"https://www.postgresql.org/support/security/CVE-2024-10976/"},{"type":"ADVISORY","url":"https://security.netapp.com/advisory/ntap-20250509-0010/"}],"affected":[{"database_specific":{"unresolved_ranges":[{"events":[{"introduced":"12.0"},{"fixed":"12.21"}]},{"events":[{"introduced":"13.0"},{"fixed":"13.17"}]},{"events":[{"introduced":"14.0"},{"fixed":"14.14"}]},{"events":[{"introduced":"15.0"},{"fixed":"15.9"}]},{"events":[{"introduced":"16.0"},{"fixed":"16.5"}]},{"events":[{"introduced":"17.0"},{"fixed":"17.1"}]}],"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-10976.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N"}]}