2012-08-17 安全更新发布

发布于 2012-08-17,作者:PostgreSQL 全球开发小组

PostgreSQL 全球开发小组今天发布了 PostgreSQL 数据库系统所有活跃分支的安全更新,包括 9.1.59.0.98.4.138.3.20 版本。此更新修补了与 libxml2 和 libxslt 相关的安全漏洞,类似于影响其他开源项目的漏洞。强烈建议所有用户在第一时间更新其安装。

此安全版本修复了内置 XML 功能中的一个漏洞,以及可选 XML2 扩展提供的 XSLT 功能中的一个漏洞。这两个漏洞都允许任何经过身份验证的数据库用户读取任意文件,并且 XSLT 漏洞还允许写入文件。这些修复会导致有限的向后兼容性问题。这些问题对应于以下两个漏洞:

此版本还包含对 9.1 版本的多个修复,以及对旧版本的少量修复,包括:

  • 更新和更正时区数据
  • 多次文档更新和更正
  • 添加对 max_wal_senders 的限制
  • 修复在 ALTER TABLE ADD CONSTRAINT USING INDEX 期间生成的依赖项。
  • 更正 PL/Python 的 Unicode 转换行为
  • 修复附加到嵌套集操作(UNION/INTERSECT/EXCEPT)的 WITH 子句。
  • 修复 syslogger,以便 log_truncate_on_rotation 在第一次轮换时工作。
  • 仅允许 autovacuum 被直接阻止的进程自动取消。
  • 改进 fsync 请求队列操作
  • 防止 rfree() 中的极端情况核心转储。
  • 修复 Walsender,使其正确响应超时和死锁
  • 针对与编码相关的多个 PL/Perl 修复
  • 使选择性运算符使用正确的排序规则
  • 防止选择不合适的从站进行同步复制
  • 使 REASSIGN OWNED 也适用于扩展
  • 修复 ENUM 比较中的竞争条件
  • 使 NOTIFY 能够应对磁盘空间不足的情况
  • 修复 ARRAY 子查询中的内存泄漏
  • 减少复制故障转移时的数据丢失
  • 修复使用热备用的子事务的行为

依赖于内置 XML 功能来验证外部 DTD 的用户需要实施一种解决方法,因为此安全补丁禁用了该功能。使用 xslt_process() 从外部 URL 获取文档或样式表的的用户将无法再这样做。PostgreSQL 项目对需要禁用这两个功能以维持我们的安全标准感到遗憾。这些 XML 的安全问题与 Webkit (CVE-2011-1774)、XMLsec (CVE-2011-1425) 和 PHP5 (CVE-2012-0057) 项目最近修补的问题基本相似。

与其他小版本一样,用户无需转储和重新加载数据库或使用 pg_upgrade 来应用此更新版本;您可以简单地关闭 PostgreSQL 并更新其二进制文件。在数据库重新启动后执行更新后步骤。

所有受支持的 PostgreSQL 版本都受到影响。请参阅每个版本的发行说明,以获取包含修复和步骤详细信息的完整更改列表。

立即在主下载页面下载新版本。