当数据库服务器或 libpq 客户端库初始化 SSL 时,libeay32.dll 会尝试从硬编码的目录读取配置。通常情况下,该目录不存在,但任何本地用户都可以创建它并注入配置。此配置可以指示 OpenSSL 以运行 PostgreSQL 服务器或客户端的用户身份加载和执行任意代码。
大多数 PostgreSQL 客户端工具和库都使用 libpq,通过使用其中任何一个都可以遇到此漏洞。此漏洞与 CVE-2019-5443 非常相似,但它是独立产生的。可以通过设置环境变量 OPENSSL_CONF 为 "NUL:/openssl.cnf" 或任何其他不能作为文件存在的文件名来规避此漏洞。
PostgreSQL 项目感谢 curl 安全团队的 Daniel Gustafsson 报告此问题。
| 受影响版本 | 已修复版本 | 修复发布日期 |
|---|---|---|
| 11 | 11.5 | 2019 年 8 月 8 日 |
| 10 | 10.10 | 2019 年 8 月 8 日 |
| 9.6 | 9.6.15 | 2019 年 8 月 8 日 |
| 9.5 | 9.5.19 | 2019 年 8 月 8 日 |
| 9.4 | 9.4.24 | 2019 年 8 月 8 日 |
有关 PostgreSQL 版本信息 的更多信息,请访问 版本信息页面。
| 总体得分 | 7.8 |
|---|---|
| 组件 | 打包 |
| 向量 | AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
如果您希望报告 PostgreSQL 中的新安全漏洞,请发送电子邮件至 security@postgresql.org。
如需报告非安全相关错误,请参阅 报告错误 页面。