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.
The PostgreSQL project thanks Tom Lane for reporting this problem.
Affected Version | Fixed In | Fix Published |
---|---|---|
17 | 17.1 | Nov. 14, 2024 |
16 | 16.5 | Nov. 14, 2024 |
15 | 15.9 | Nov. 14, 2024 |
14 | 14.14 | Nov. 14, 2024 |
13 | 13.17 | Nov. 14, 2024 |
12 | 12.21 | Nov. 14, 2024 |
For more information about PostgreSQL versioning, please visit the versioning page.
Overall Score | 4.2 |
---|---|
Component | core server |
Vector | AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N |
If you wish to report a new security vulnerability in PostgreSQL, please send an email to security@postgresql.org.
For reporting non-security bugs, please see the Report a Bug page.