CVE-2024-10978

Name
CVE-2024-10978
Description
Incorrect privilege assignment in PostgreSQL allows a less-privileged application user to view or change different rows from those intended. An attack requires the application to use SET ROLE, SET SESSION AUTHORIZATION, or an equivalent feature. The problem arises when an application query uses parameters from the attacker or conveys query results to the attacker. If that query reacts to current_setting('role') or the current user ID, it may modify or return data as though the session had not used SET ROLE or SET SESSION AUTHORIZATION. The attacker does not control which incorrect user ID applies. Query text from less-privileged sources is not a concern here, because SET ROLE and SET SESSION AUTHORIZATION are not sandboxes for unvetted queries. Versions before PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17, and 12.21 are affected.
NVD Severity
medium
Other trackers
Mailing lists
Exploits
Forges
GitHub (code, issues), Aports (code, issues)

References

Type URI
https://www.postgresql.org/support/security/CVE-2024-10978/
Mailing List https://lists.debian.org/debian-lts-announce/2024/11/msg00018.html
Mailing List https://www.postgresql.org/message-id/173171334532.1547978.1518068370217143844%40wrigleys.postgresql.org
af854a3a-2127-422b-91ae-364da2661108 https://lists.debian.org/debian-lts-announce/2024/11/msg00011.html

Match rules

CPE URI Source package Min version Max version
postgresql >= 17 < 17.1
postgresql >= 16 < 16.5
postgresql >= 15 < 15.9
postgresql >= 14 < 14.14
postgresql >= 13 < 13.17
postgresql >= 0 < 12.21

Vulnerable and fixed packages

Source package Branch Version Maintainer Status
postgresql17 edge-main 17.1-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql17 3.22-main 17.1-r0 None fixed
postgresql17 3.21-main 17.1-r0 None fixed
postgresql16 edge-main 16.5-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql16 edge-community 16.5-r0 None fixed
postgresql16 3.22-main 16.5-r0 None fixed
postgresql16 3.21-main 16.5-r0 None fixed
postgresql16 3.20-main 16.5-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql16 3.19-main 16.5-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql15 edge-community 15.9-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql15 3.22-community 15.9-r0 None fixed
postgresql15 3.21-community 15.9-r0 None fixed
postgresql15 3.20-main 15.9-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql15 3.19-main 15.9-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql15 3.18-main 15.9-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql15 3.17-main 15.9-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql14 3.20-community 14.14-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql14 3.18-main 14.14-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql14 3.17-main 14.14-r0 Jakub Jirutka <jakub@jirutka.cz> fixed
postgresql edge-main 14.1-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
postgresql edge-main 13.4-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
postgresql edge-main 13.3-r0 Jakub Jirutka <jakub@jirutka.cz> possibly vulnerable
postgresql edge-main 13.2-r0 None possibly vulnerable
postgresql edge-main 12.5-r0 None possibly vulnerable
postgresql edge-main 12.4-r0 None possibly vulnerable
postgresql edge-main 12.2-r0 None possibly vulnerable
postgresql edge-main 11.5-r0 None possibly vulnerable
postgresql edge-main 11.4-r0 None possibly vulnerable
postgresql edge-main 11.3-r0 None possibly vulnerable
postgresql edge-main 11.1-r0 None possibly vulnerable
postgresql edge-main 10.5-r0 None possibly vulnerable
postgresql edge-main 10.4-r0 None possibly vulnerable
postgresql edge-main 10.3-r0 None possibly vulnerable
postgresql edge-main 10.2-r0 None possibly vulnerable
postgresql edge-main 10.1-r0 None possibly vulnerable
postgresql edge-main 9.6.4-r0 None possibly vulnerable
postgresql edge-main 9.6.3-r0 None possibly vulnerable