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

2016-08-11 安全更新发布

发布于 2016-08-11,作者:PostgreSQL Global Development Group

PostgreSQL Global Development Group 发布了我们数据库系统所有受支持版本的更新,包括 9.5.4、9.4.9、9.3.14、9.2.18 和 9.1.23。此版本修复了两个安全问题。它还修补了过去三个月中报告的许多其他错误。依赖数据库用户之间安全隔离的用户应尽快更新。其他用户应计划在下次方便的停机时间进行更新。

安全问题

此版本关闭了两个安全漏洞

  • CVE-2016-5423:某些嵌套的 CASE 表达式可能导致服务器崩溃。
  • CVE-2016-5424:包含特殊字符的数据库和角色名称可能在 pg_dumpall 等管理操作期间允许代码注入。

第二个问题的修复还为 psql 的 \connect 命令添加了一个选项,即 -reuse-previous。更新后,pg_dumpall 还将拒绝处理包含换行符的数据库和角色名称。有关这些问题以及它们如何影响向后兼容性的更多信息,请参阅发行说明。

错误修复和改进

此更新还修复了过去几个月报告的许多错误。其中一些问题仅影响 9.5 版本,但许多问题会影响所有受支持的版本。

  • 修复 IS NULL/IS NOT NULL 与复合值一起出现的错误行为
  • 修复 INSERT ... ON CONFLICT 与其他 SQL 功能配合使用时未能正常工作的三个方面。
  • 使 INET 和 CIDR 数据类型正确拒绝无效的 IPv6 值
  • 防止 NaN 输入时“point ## lseg”运算符崩溃
  • 避免 pg_get_expr() 中可能发生的崩溃
  • 修复 to_number() 中几个单字节缓冲区溢出读取
  • 如果指定了 WITH NO DATA,则不计划不必要的查询
  • 避免昂贵的 heap_update() 路径中出现崩溃不安全的状态
  • 修复行锁定操作的 WAL 重放期间的提示位更新
  • 避免 FOR KEY SHARE 出现不必要的“无法序列化访问”
  • 避免在指定变量为空字符串时 postgres -C 崩溃
  • 修复逻辑解码和子事务中的两个问题
  • 确保后端能够看到共享目录的最新统计信息
  • 防止在升级后的数据库中 vacuuming multixact ID 时可能发生的故障
  • 当手动 ANALYZE 指定列时,不要重置 changes_since_analyze
  • 修复 ANALYZE 对带 NULL 值的列的 n_distinct 的高估
  • 修复 b-tree 标记/恢复处理中的错误
  • 修复构建大型(大于 shared_buffers)哈希索引
  • 防止 NaN 值时 GiST 索引构建中的无限循环
  • 修复最近邻索引扫描中可能发生的崩溃
  • 修复“PANIC: failed to add BRIN tuple”错误
  • 防止后台工作程序关闭时可能发生的崩溃
  • 修复并行 pg_dump 和 pg_restore 中许多问题
  • 使 pg_basebackup 接受 -Z 0 作为无压缩
  • 使回归测试对丹麦语和威尔士语环境安全

libpq 客户端库也已更新,以支持未来的两部分 PostgreSQL 版本号。此更新还包含 tzdata 2016f 版本,其中包含对克麦罗沃、新西伯利亚、阿塞拜疆、白俄罗斯和摩洛哥的更新。

9.1 版本 EOL 警告

PostgreSQL 9.1 版本将于 2016 年 9 月达到生命周期终点。项目预计只为该版本发布最后一个更新。我们敦促用户尽快开始计划升级到较新版本的 PostgreSQL。有关更多信息,请参阅我们的版本策略。

更新

所有 PostgreSQL 更新版本都是累积的。与之前的次要版本一样,用户无需转储和重新加载数据库或使用 pg_upgrade 来应用此更新版本;您可以简单地关闭 PostgreSQL 并更新其二进制文件。跳过一个或多个更新版本的用户可能需要运行额外的、更新后的步骤;有关详细信息,请参阅早期版本的发行说明。

链接:* 下载 * 发行说明 * 安全页面 * 版本策略