CVE-2024-10976

NameCVE-2024-10976
DescriptionIncomplete 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.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)
ReferencesDLA-3954-1, DSA-5812-1
Debian Bugs1088687

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
postgresql-11 (PTS)buster, buster (lts)11.22-0+deb10u3vulnerable
buster (security)11.22-0+deb10u2vulnerable
postgresql-13 (PTS)bullseye13.16-0+deb11u1vulnerable
bullseye (security)13.18-0+deb11u1fixed
postgresql-15 (PTS)bookworm15.8-0+deb12u1vulnerable
bookworm (security)15.10-0+deb12u1fixed
postgresql-16 (PTS)sid, trixie16.4-3vulnerable
postgresql-17 (PTS)sid, trixie17.2-1fixed
postgresql-9.4 (PTS)jessie, jessie (lts)9.4.26-0+deb8u10fixed
postgresql-9.6 (PTS)stretch (security)9.6.24-0+deb9u1vulnerable
stretch (lts), stretch9.6.24-0+deb9u7vulnerable

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
postgresql-11source(unstable)(unfixed)
postgresql-13sourcebullseye13.17-0+deb11u1DLA-3954-1
postgresql-13source(unstable)(unfixed)
postgresql-15sourcebookworm15.9-0+deb12u1DSA-5812-1
postgresql-15source(unstable)(unfixed)
postgresql-16source(unstable)(unfixed)1088687
postgresql-17source(unstable)17.1-1
postgresql-9.4sourcejessie(not affected)
postgresql-9.4source(unstable)(unfixed)
postgresql-9.6source(unstable)(unfixed)

Notes

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)

Search for package or bug name: Reporting problems