PostgreSQL 9.4.2、9.3.7、9.2.11、9.1.16 和 9.0.20 发布!

发布于 2015-05-22,由 PostgreSQL 全球开发小组发布

PostgreSQL 全球开发小组发布了一个更新,其中包含对所有受支持的 PostgreSQL 数据库系统版本的多个功能和安全修复,包括次要版本 9.4.2、9.3.7、9.2.11、9.1.16 和 9.0.20。此更新包含一个关键修复,用于解决 PostgreSQL 9.3 和 9.4 中潜在的数据损坏问题;这些版本的用户应在下次可能的机会更新其服务器。

请在应用此更新之前,查看关于某些用户的潜在问题的常见问题解答。

数据损坏修复

对于 PostgreSQL 9.3 或 9.4 版的用户,此版本修复了一个问题,即数据库将无法防止“多事务回绕”,从而导致数据损坏或丢失。在具有许多外键的数据库中,事务率高(每小时 100 万或更多)的用户尤其容易受到攻击。我们强烈敦促 9.4 和 9.3 的所有用户在未来几天内更新他们的安装。

9.2 及更早版本的用户不受此问题影响。

安全修复

此更新修复了过去几个月在 PostgreSQL 中报告的三个安全漏洞。这些问题都不是特别紧急。但是,用户应检查它们,以防他们的安装存在漏洞。

  • CVE-2015-3165 身份验证超时后双重“释放”。
  • CVE-2015-3166 标准库中出现意外错误。
  • CVE-2015-3167 pgcrypto 使用不正确的密钥进行解密时会显示多个错误消息。

此外,我们建议所有使用 Kerberos、GSSAPI 或 SSPI 身份验证的用户在 pg_hba.conf 中将 include_realm 设置为 1,这将在未来版本中成为默认设置。

有关这些问题以及旧的已修补问题的更多信息,请访问 PostgreSQL 安全页面。

其他修复和改进

citext 扩展的新非默认版本修复了其以前未记录的 regexp_matches() 函数,使其与这些函数的普通文本版本对齐。修复后的版本具有与旧版本不同的返回类型,因此 CIText 的用户应在通过运行“ALTER EXTENSION citext UPDATE”更新函数之前测试其应用程序。

除了上述内容外,此累积更新版本中还修复了 50 多个报告的问题。大多数指定的问题会影响所有受支持的版本。这些修复包括:

  • 在转换为 json 时,将无限日期和时间戳呈现为无穷大
  • 修复 json/jsonb 的 populate_record() 和 to_record()
  • 修复延迟排除约束的错误检查
  • 改进星型模式查询的规划
  • 修复规划连接的三个问题
  • 确保使用安全屏障视图的正确锁定
  • 修复 max_prepared_transactions 太小时启动时出现的死锁
  • 在崩溃后递归 fsync() 数据目录
  • 修复自动清理启动器可能无法关闭的问题
  • 处理 LockBufferForCleanup() 中的意外信号
  • 修复使用检查约束对表执行 COPY IN 时发生的崩溃
  • 避免等待只读事务的同步复制
  • 修复哈希索引的两个问题
  • 防止 GIN 索引清理中的内存泄漏
  • 修复后台工作线程的两个问题
  • 对逻辑解码复制的几个修复
  • 修复 pg_dump 和 pg_upgrade 的几个小问题

此版本包括 tzdata 版本 2015d 的更新,其中更新了埃及、蒙古和巴勒斯坦,以及加拿大和智利的历史性变更。

9.0 即将停止服务

9.0 版本将于 2015 年 9 月停止服务。这意味着此更新很可能是该版本的倒数第二个更新。PostgreSQL 9.0 的用户应在此之前开始计划升级到更新的版本。有关 EOL 日期的更多信息,请参阅我们的版本控制策略

更新

与其他次要版本一样,用户无需转储和重新加载数据库或使用 pg_upgrade 即可应用此更新版本;您只需关闭 PostgreSQL 并更新其二进制文件即可。跳过多个更新版本的用户可能需要执行其他更新后步骤;有关详细信息,请参阅发行说明。

链接