Name | CVE-2024-10976 |
Description | 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. |
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
References | DLA-3954-1, DSA-5812-1 |
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|---|---|---|
postgresql-11 (PTS) | buster, buster (lts) | 11.22-0+deb10u3 | vulnerable |
buster (security) | 11.22-0+deb10u2 | vulnerable | |
postgresql-13 (PTS) | bullseye | 13.16-0+deb11u1 | vulnerable |
bullseye (security) | 13.18-0+deb11u1 | fixed | |
postgresql-15 (PTS) | bookworm | 15.8-0+deb12u1 | vulnerable |
bookworm (security) | 15.10-0+deb12u1 | fixed | |
postgresql-16 (PTS) | sid, trixie | 16.4-3 | vulnerable |
postgresql-17 (PTS) | trixie | 17.0-1 | vulnerable |
sid | 17.2-1 | fixed | |
postgresql-9.4 (PTS) | jessie, jessie (lts) | 9.4.26-0+deb8u10 | fixed |
postgresql-9.6 (PTS) | stretch (security) | 9.6.24-0+deb9u1 | vulnerable |
stretch (lts), stretch | 9.6.24-0+deb9u7 | vulnerable |
The information below is based on the following data on fixed versions.
Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
---|---|---|---|---|---|---|
postgresql-11 | source | (unstable) | (unfixed) | |||
postgresql-13 | source | bullseye | 13.17-0+deb11u1 | DLA-3954-1 | ||
postgresql-13 | source | (unstable) | (unfixed) | |||
postgresql-15 | source | bookworm | 15.9-0+deb12u1 | DSA-5812-1 | ||
postgresql-15 | source | (unstable) | (unfixed) | |||
postgresql-16 | source | (unstable) | (unfixed) | |||
postgresql-17 | source | (unstable) | 17.1-1 | |||
postgresql-9.4 | source | jessie | (not affected) | |||
postgresql-9.4 | source | (unstable) | (unfixed) | |||
postgresql-9.6 | source | (unstable) | (unfixed) |
https://www.postgresql.org/support/security/CVE-2024-10976/
Fixed by: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=edcda9bb4c4500b75bb4a16c7c59834398ca2906 (v17.2)
Fixed by: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=562289460e118fcad44ec916dcdab21e4763c38c (v16.6)
Fixed by: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=6db5ea8de8ce15897b706009aaf701d23bd65b23 (v15.10)
Fixed by: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=4e51030af9e0a12d7fa06b73acd0c85024f81062 (v14.15)
Fixed by: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=952ff31e2a89e8ca79ecb12d61fddbeac3d89176 (v13.18)
Fixed by: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=448525e8a44080b6048e24f6942284b7eeae1a5c (v12.21)
[jessie] - postgresql-9.4 <not-affected> (Vulnerable code introduced later)