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

PostgreSQL 9.4.1, 9.3.6, 9.2.10, 9.1.15 & 9.0.19 发布

发布于 2015-02-05,作者:PostgreSQL Global Development Group

PostgreSQL Global Development Group 发布了一个重要的更新,为所有受支持版本的 PostgreSQL 数据库系统修复了多个安全问题,其中包括次要版本 9.4.1、9.3.6、9.2.10、9.1.15 和 9.0.19。此更新包含了安全修复以及自上次发布以来发现的问题的修复。特别是对于 9.4 更新,JSON 和 JSONB 数据类型的 Unicode 字符串转义方式有所改变。

所有用户应在下次有机会时更新其 PostgreSQL 安装。

安全修复

此更新修复了过去几个月在 PostgreSQL 中报告的多个安全问题。所有这些问题都需要提前身份验证,有些还需要附加条件,因此不被认为普遍紧急。但是,用户应检查下方列出的已修复的安全漏洞,以防他们特别容易受到攻击。

此更新还修复了先前报告的一个问题:在 Windows 上进行回归测试时,测试 postmaster 进程容易受到未经授权的连接。此漏洞在上一个更新版本中已在非 Windows 平台上修复。

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

JSON 和 JSONB Unicode 转义

PostgreSQL 9.4.0 中对 JSON 和 JSONB 的 Unicode 转义字符串的处理方式已更改,这可能会破坏某些用户的兼容性。为修复一些不一致之处,JSONB 类型不再接受转义序列 "\u0000"。JSON 类型仅在不需要转换为反转义形式的上下文中接受 "\u0000"。请参阅发行说明了解更多详情。

其他修复和改进

除上述内容外,此累积更新版本还修复了 60 多个报告的问题。其中一些问题仅影响 9.4 版本,但许多问题修复了旧版本中存在的错误。这些修复包括:

  • 处理非 ASCII 的挪威语 Windows 区域设置名称。
  • 在数据库迁移到新的表空间后再迁回时,避免数据损坏。
  • 确保在 ALTER DATABASE 操作期间正确复制 UNLOGGED 表。
  • 避免锁定最近修改的行时出现死锁。
  • 修复两个 SELECT FOR UPDATE 查询问题。
  • 防止正则表达式最短优先匹配出现误报。
  • 修复 tsquery 包含运算符中的误报和漏报。
  • 修复 xpath() 中的命名空间处理。
  • 防止生成行的函数创建空的列名。
  • 使 autovacuum 使用每张表的 cost_limit 和 cost_delay 设置。
  • 当 autovacuum=off 时,将 autovacuum 工作限制为仅防止回绕。
  • 9.4 版本中逻辑解码的多个修复。
  • 修复热备查询中由于页面替换而出现的瞬时错误。
  • 防止在恢复结束或备用服务器提升时重复 WAL 文件归档。
  • 防止在并行恢复仅包含架构的转储时发生死锁。

除了上述修复外,此版本还修复了以下 contrib 模块和扩展中的错误:pg_upgrade、auto_explain、hstore、pageinspect、pgcrypto、pg_test_fsync、tablefunc 和 xml2。此外,多个 contrib 模块中的多个函数已使用正确的易变性级别进行了修改。还根据 Coverity Scan 静态分析器发现的次要问题进行了多项清理修复。

此更新还包含对 PostgreSQL 时区文件的许多更改。其中包括对 tzdata release 2015a 的更新,以及对智利、墨西哥、特克斯和凯科斯群岛以及斐济的更新。PostgreSQL 现在在根据历史可变时区的时区缩写分配偏移量时会考虑日期。我们还对时区缩写进行了全面清理,并将 "CST" 添加为中国标准时间的缩写。

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

链接:* 下载 * 发行说明 * 安全页面