\gset
元命令根据查询结果设置 psql
变量,但它无法区分控制 psql
行为的变量。如果交互式 psql
会话在查询受攻击的服务器时使用 \gset
,攻击者就可以以运行 psql
的操作系统账户的身份执行任意代码。在未打补丁的 psql
中,使用 \gset
配合不在特殊处理变量中的前缀(例如任何小写字符串)可以阻止此攻击。
PostgreSQL 项目感谢 Nick Cleaton 报告此问题。
受影响版本 | 已修复版本 | 修复发布日期 |
---|---|---|
13 | 13.1 | 2020 年 11 月 12 日 |
12 | 12.5 | 2020 年 11 月 12 日 |
11 | 11.10 | 2020 年 11 月 12 日 |
10 | 10.15 | 2020 年 11 月 12 日 |
9.6 | 9.6.20 | 2020 年 11 月 12 日 |
9.5 | 9.5.24 | 2020 年 11 月 12 日 |
有关 PostgreSQL 版本信息 的更多信息,请访问 版本信息页面。
总体得分 | 7.5 |
---|---|
组件 | 客户端 |
向量 | AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H |
如果您希望报告 PostgreSQL 中的新安全漏洞,请发送电子邮件至 security@postgresql.org。
如需报告非安全相关错误,请参阅 报告错误 页面。