一些扩展使用 CREATE OR REPLACE 或 CREATE IF NOT EXISTS 命令。有些扩展不遵守文档规则,只定向到已知的属于扩展成员的对象。攻击需要至少在一个模式(schema)中创建非临时对象的权限,能够诱导或等待管理员在该模式中创建或更新受影响的扩展,并且能够诱导或等待受害者使用在 CREATE OR REPLACE 或 CREATE IF NOT EXISTS 中被定向的对象。一旦满足所有这三个先决条件,攻击者就可以以受害者角色的身份运行任意代码,该角色可能是超级用户。已知受影响的扩展包括 PostgreSQL 自带的和非自带的扩展。PostgreSQL 正在通过核心服务器阻止此攻击,因此无需修改单个扩展。
PostgreSQL 项目感谢 Sven Klemm 报告此问题。
| 受影响版本 | 已修复版本 | 修复发布日期 |
|---|---|---|
| 14 | 14.5 | 2022 年 8 月 11 日 |
| 13 | 13.8 | 2022 年 8 月 11 日 |
| 12 | 12.12 | 2022 年 8 月 11 日 |
| 11 | 11.17 | 2022 年 8 月 11 日 |
| 10 | 10.22 | 2022 年 8 月 11 日 |
有关 PostgreSQL 版本信息 的更多信息,请访问 版本信息页面。
| 总体得分 | 7.1 |
|---|---|
| 组件 | 核心服务器 |
| 向量 | AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H |
如果您希望报告 PostgreSQL 中的新安全漏洞,请发送电子邮件至 security@postgresql.org。
如需报告非安全相关错误,请参阅 报告错误 页面。