当特权用户维护另一个用户的对象时,Autovacuum、REINDEX、CREATE INDEX、REFRESH MATERIALIZED VIEW、CLUSTER 和 pg_amcheck 在安全运行时未完全起到保护作用。这些命令过晚或根本未激活相关的保护措施。拥有在至少一个模式下创建非临时对象的权限的攻击者可以在超级用户身份下执行任意 SQL 函数。
虽然及时更新 PostgreSQL 是大多数用户的最佳修复方法,但无法这样做的用户可以通过禁用自动清理、不手动运行上述命令以及不从 pg_dump 命令的输出中恢复来规避此漏洞。在此规避措施下,性能可能会迅速下降。VACUUM 是安全的,并且当受信任的用户拥有目标对象时,所有命令都是正常的。
PostgreSQL 项目感谢 Alexander Lakhin 报告此问题。
| 受影响版本 | 已修复版本 | 修复发布日期 |
|---|---|---|
| 14 | 14.3 | 2022年5月12日 |
| 13 | 13.7 | 2022年5月12日 |
| 12 | 12.11 | 2022年5月12日 |
| 11 | 11.16 | 2022年5月12日 |
| 10 | 10.21 | 2022年5月12日 |
有关 PostgreSQL 版本信息 的更多信息,请访问 版本信息页面。
| 总体得分 | 8.8 |
|---|---|
| 组件 | 核心服务器 |
| 向量 | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
如果您希望报告 PostgreSQL 中的新安全漏洞,请发送电子邮件至 security@postgresql.org。
如需报告非安全相关错误,请参阅 报告错误 页面。