{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-10976","assignerOrgId":"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007","state":"PUBLISHED","assignerShortName":"PostgreSQL","dateReserved":"2024-11-07T19:27:02.623Z","datePublished":"2024-11-14T13:00:01.930Z","dateUpdated":"2025-11-03T21:51:36.955Z"},"containers":{"cna":{"providerMetadata":{"orgId":"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007","shortName":"PostgreSQL","dateUpdated":"2024-11-14T13:00:01.930Z"},"title":"PostgreSQL row security below e.g. subqueries disregards user ID changes","descriptions":[{"lang":"en","value":"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."}],"affected":[{"defaultStatus":"unaffected","product":"PostgreSQL","vendor":"n/a","versions":[{"lessThan":"17.1","status":"affected","version":"17","versionType":"rpm"},{"lessThan":"16.5","status":"affected","version":"16","versionType":"rpm"},{"lessThan":"15.9","status":"affected","version":"15","versionType":"rpm"},{"lessThan":"14.14","status":"affected","version":"14","versionType":"rpm"},{"lessThan":"13.17","status":"affected","version":"13","versionType":"rpm"},{"lessThan":"12.21","status":"affected","version":"0","versionType":"rpm"}]}],"problemTypes":[{"descriptions":[{"lang":"en","cweId":"CWE-1250","type":"CWE","description":"Improper Preservation of Consistency Between Independent Representations of Shared State"}]}],"references":[{"url":"https://www.postgresql.org/support/security/CVE-2024-10976/"}],"metrics":[{"format":"CVSS","cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N","baseScore":4.2,"baseSeverity":"MEDIUM"}}],"configurations":[{"lang":"en","value":"application uses row security policies that react to the current role, and one database session reaches the same query via multiple roles"}],"credits":[{"lang":"en","value":"The PostgreSQL project thanks Wolfgang Walther for reporting this problem."}]},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-11-14T18:53:41.183245Z","id":"CVE-2024-10976","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-11-14T19:32:17.213Z"}},{"title":"CVE Program Container","references":[{"url":"https://security.netapp.com/advisory/ntap-20250509-0010/"},{"url":"https://lists.debian.org/debian-lts-announce/2024/11/msg00011.html"}],"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2025-11-03T21:51:36.955Z"}}]}}