2025年9月25日: PostgreSQL 18 发布!

安全更新 2012-08-17 发布

由 PostgreSQL 全球开发组于 2012-08-17 发布

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 转换行为
  • 修复 WITH 连接到嵌套集操作 (UNION/INTERSECT/EXCEPT) 的问题。
  • 修复 syslogger,使其 log_truncate_on_rotation 在首次轮换时生效。
  • 仅允许 autovacuum 被直接阻塞的进程自动取消。
  • 改进 fsync 请求队列操作
  • 防止 rfree() 中出现个别情况下的核心转储。
  • 修复 Walsender,使其正确响应超时和死锁
  • 多个 PL/Perl 针对编码相关问题的修复
  • 使选择性运算符使用正确的排序规则
  • 防止选择不适合的从库进行同步复制
  • 使 REASSIGN OWNED 也能在扩展上工作
  • 修复 ENUM 比较中的竞争条件
  • 使 NOTIFY 能处理磁盘空间不足的情况
  • 修复 ARRAY 子查询中的内存泄漏
  • 减少复制故障转移时的数据丢失
  • 修复 Hot Standby 的子事务行为

依赖内置 XML 功能验证外部 DTD 的用户需要实施变通方法,因为此安全补丁禁用了该功能。使用 xslt_process() 从外部 URL 获取文档或样式表的用户的此类功能将不再可用。PostgreSQL 项目对为维护我们的安全标准而不得不禁用这两项功能表示遗憾。这些 XML 安全问题与 Webkit (CVE-2011-1774)、XMLsec (CVE-2011-1425) 和 PHP5 (CVE-2012-0057) 项目近期修补的问题基本相似。

与其它次要版本一样,用户在应用此更新版本时无需转储和重新加载数据库或使用 pg_upgrade;您只需关闭 PostgreSQL 并更新其二进制文件即可。数据库重启后执行更新后的步骤。

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

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