CVE-2023-2455: Input Validation
CVE-2023-2455: Row security policies disregard user ID changes after inlining.
Versions Affected: 11 - 15. This problem is quite old.
While CVE-2016-2193 fixed most interaction between row security and user ID changes, it missed a scenario involving function inlining. This 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.
https://www.postgresql.org/support/security/CVE-2023-2455/
Other sources
Row security policies disregard user ID changes after inlining; PostgreSQL could permit incorrect policies to be applied in certain 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.
— Ubuntu
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
debian/postgresql-11to a version that resolves this vulnerability.Fixed in 11.22-0+deb10u2 - Upgrade
Upgrade
debian/postgresql-13to a version that resolves this vulnerability.Fixed in 13.13-0+deb11u1Fixed in 13.14-0+deb11u1 - Upgrade
Upgrade
debian/postgresql-15to a version that resolves this vulnerability.Fixed in 15.5-0+deb12u1Fixed in 15.6-0+deb12u1 - Upgrade
Upgrade
ubuntu/postgresql-10to a version that resolves this vulnerability.Fixed in 10.23-0ubuntu0.18.04.2 - Upgrade
Upgrade
ubuntu/postgresql-12to a version that resolves this vulnerability.Fixed in 12.15-0ubuntu0.20.04.1 - Upgrade
Upgrade
ubuntu/postgresql-14to a version that resolves this vulnerability.Fixed in 14.8-0ubuntu0.22.04.1 - Upgrade
Upgrade
ubuntu/postgresql-14to a version that resolves this vulnerability.Fixed in 14.8-0ubuntu0.22.10.1 - Upgrade
Upgrade
ubuntu/postgresql-15to a version that resolves this vulnerability.Fixed in 15.3-0ubuntu0.23.04.1 - Upgrade
Upgrade
redhat/PostgreSQLto a version that resolves this vulnerability.Fixed in 15.3 - Upgrade
Upgrade
redhat/PostgreSQLto a version that resolves this vulnerability.Fixed in 14.8 - Upgrade
Upgrade
redhat/PostgreSQLto a version that resolves this vulnerability.Fixed in 13.11 - Upgrade
Upgrade
redhat/PostgreSQLto a version that resolves this vulnerability.Fixed in 12.15 - Upgrade
Upgrade
redhat/PostgreSQLto a version that resolves this vulnerability.Fixed in 11.20
Event History
Frequently Asked Questions
What is the severity of CVE-2023-2455?
The severity of CVE-2023-2455 is medium (5.4).
What is the affected software for CVE-2023-2455?
The affected software for CVE-2023-2455 includes PostgreSQL versions 10.23-0ubuntu0.18.04.2, 12.15-0ubuntu0.20.04.1, 14.8-0ubuntu0.22.04.1, 14.8-0ubuntu0.22.10.1, 15.3-0ubuntu0.23.04.1, Debian versions 11.21-0+deb10u2, 13.11-0+deb11u1, 15.3-0+deb12u1, 15.4-3, Redhat versions 15.3, 14.8, 13.11, 12.15, and 11.20, and Redhat Enterprise Linux versions 8.0 and 9.0.
What is the vulnerability description of CVE-2023-2455?
CVE-2023-2455 is a vulnerability where row security policies in PostgreSQL disregard user ID changes after inlining, potentially allowing incorrect policies to be applied.
How do I fix CVE-2023-2455?
To fix CVE-2023-2455, users should update to the latest version of PostgreSQL, as provided in the affected software list.
Where can I find more information about CVE-2023-2455?
More information about CVE-2023-2455 can be found at the following references: [1] [2] [3].