PostgreSQL 全球开发组发布了一个重要更新,其中包含对 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 版本 2015a,其中包含对智利、墨西哥、特克斯和凯科斯群岛以及斐济的更新。PostgreSQL 现在在为历史上可更改的时区分配基于时区缩写的偏移量时会考虑日期。我们还对时区缩写进行了全面清理,并添加了“CST”作为中国标准时间的缩写。
与其他次要版本一样,用户无需转储和重新加载数据库或使用 pg_upgrade 即可应用此更新版本;您可以简单地关闭 PostgreSQL 并更新其二进制文件。跳过多个更新版本的用户可能需要执行其他更新后步骤;有关详细信息,请参阅发行说明。