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 安全页面。
PostgreSQL 9.4.0 中对 JSON 和 JSONB 的 Unicode 转义字符串的处理方式已更改,这可能会破坏某些用户的兼容性。为修复一些不一致之处,JSONB 类型不再接受转义序列 "\u0000"。JSON 类型仅在不需要转换为反转义形式的上下文中接受 "\u0000"。请参阅发行说明了解更多详情。
除上述内容外,此累积更新版本还修复了 60 多个报告的问题。其中一些问题仅影响 9.4 版本,但许多问题修复了旧版本中存在的错误。这些修复包括:
除了上述修复外,此版本还修复了以下 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 并更新其二进制文件即可。跳过多个更新版本的用户可能需要执行额外的后续步骤;详情请参阅发行说明。