2025年9月25日: PostgreSQL 18 发布!

CVE-2024-10976

PostgreSQL 行安全性在子查询等情况下会忽略用户 ID 更改

PostgreSQL 中对行安全策略表的追踪不完整,导致重用查询可以查看或更改非预期的行。CVE-2023-2455 和 CVE-2016-2193 已经修复了行安全策略与用户 ID 更改之间的大部分交互问题。然而,它们未能覆盖子查询、WITH 查询、安全调用者视图或 SQL 语言函数引用具有行级别安全策略的表的场景。这会导致与前两个 CVE 相同的影响。也就是说,在角色特定策略被使用,并且给定查询在一个角色下规划,然后又在其他角色下执行的情况下,可能会应用不正确的策略。这种情况可能发生在安全定义函数中,或者当一个普通用户和查询最初被规划,然后在多个 SET ROLE 之间重用时。

应用不正确的策略可能会允许用户完成原本被禁止的读取和修改。这仅影响使用 CREATE POLICY 定义了行安全策略的数据库。攻击者必须针对特定应用程序的查询计划重用模式、用户 ID 更改和角色特定行安全策略的模式来定制攻击。PostgreSQL 17.1、16.5、15.9、14.14、13.17 和 12.21 之前的版本受到影响。

版本信息

受影响版本 已修复版本 修复发布日期
17 17.1 2024 年 11 月 14 日
16 16.5 2024 年 11 月 14 日
15 15.9 2024 年 11 月 14 日
14 14.14 2024 年 11 月 14 日
13 13.17 2024 年 11 月 14 日
12 12.21 2024 年 11 月 14 日

有关 PostgreSQL 版本信息 的更多信息,请访问 版本信息页面

CVSS 3.0

总体得分 4.2
组件 核心服务器
向量 AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N

报告安全漏洞

如果您希望报告 PostgreSQL 中的新安全漏洞,请发送电子邮件至 security@postgresql.org

如需报告非安全相关错误,请参阅 报告错误 页面。