2012-05-30 安全补丁

发布于 2012-05-30,作者:PostgreSQL 全球开发小组

今天,PHP、OpenBSD 和 FreeBSD 社区宣布更新,以修复其 crypt() 哈希算法中涉及的安全漏洞。此问题在 CVE-2012-2143 中描述。此漏洞也会影响少数 PostgreSQL 用户,并将在 2012 年 6 月 4 日的更新版本中修复。

受影响的用户是那些在可选的 pgcrypto 模块中使用带有 DES 加密的 crypt(text, text) 函数的用户。受影响的密码是那些包含无法用 7 位 ASCII 表示的字符的密码。如果密码包含最高有效位设置 (0x80) 的字符,并且使用了 DES 加密,则该字符及其后的所有字符都将被忽略。

建议无法等待更新的高安全性应用程序的用户执行以下三项操作之一

  • 从使用带有 DES 的 crypt() 切换到更现代的加密算法,例如 Blowfish。
  • 下载补丁,以源代码形式修补自己的安装,重新安装 pgcrypto,断开所有会话并重新启动它们以重新加载库或重新启动服务器。
  • 添加检查以确保使用 crypt() 哈希的所有密码不允许值 0x80。

请注意,由于哈希算法的更改,修补其安装的用户或在 6 月 4 日应用更新的用户可能需要为其部分或所有应用程序用户重新生成密码。具体来说,更新后,包含 0x80 的密码将不再起作用。

PostgreSQL 项目对给用户带来的不便表示歉意。我们感谢安全研究人员 Robin Xu 和 Joseph Bonneau 发现了这个问题。

有关 pgcrypto 模块的更多信息,请参阅文档