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

2016-02-11 安全更新发布

发布于 2016-02-11,由 PostgreSQL 全球开发组

PostgreSQL 全球开发组发布了我们数据库系统所有受支持版本的更新,包括 9.5.1、9.4.6、9.3.11、9.2.15 和 9.1.20。此版本修复了两个安全问题,以及过去四个月中发现的多个错误。易受安全问题影响的用户应立即更新其安装;其他用户应在下一次计划停机时更新。

正则表达式、PL/Java 的安全修复

此版本修复了安全漏洞 CVE-2016-0773,这是一个与正则表达式(regex)解析相关的问题。先前的代码允许用户传入包含超出范围的 Unicode 字符的表达式,从而导致后端崩溃。此问题对于包含不受信任用户或根据用户输入生成正则表达式的 PostgreSQL 系统至关重要。

此次更新还修复了 CVE-2016-0766,这是一个 PL/Java 用户权限提升的问题。某些 PL/Java 的自定义配置设置(GUCS)现在只能由数据库超级用户修改。

其他修复和改进

除上述内容外,此版本还根据过去几个月用户报告的错误修复了许多其他问题。这包括对 9.5.0 版本中引入的新功能的多项修复,以及对 pg_dump 的重构,以消除备份 EXTENSION 时出现的许多长期存在的问题。其中有:

  • 修复了 pg_dump 在处理特定对象类型时的许多问题
  • 防止对 GROUPING SETS 进行过度积极的 HAVING 子句下推
  • 修复了 ON CONFLICT ... WHERE 子句的反解析错误
  • 修复了 postgres_fdw 的 tableoid 错误
  • 防止 pgbench 中出现浮点异常
  • 使 \det 一致地搜索外部表名
  • 修复了 pg_dump 中域约束名称的引用问题
  • 防止将展开的对象放入 Const 节点
  • 允许在 Windows 上编译 PL/Java
  • 修复了 PL/Python 执行中的“未解析的符号”错误
  • 允许在同一数据库中使用 Python2 和 Python3
  • 为 PL/Python 添加了对 Python 3.5 的支持
  • 修复了 initdb 期间子目录创建的问题
  • 使 pg_ctl 在 Windows 上正确报告状态
  • 在使用 pg_receivexlog 与旧版服务器时抑制了令人困惑的错误
  • 多项文档更正和补充
  • 修复了 gin_extract_jsonb_path() 中错误的哈希计算

此次更新还包含 tzdata 2016a 版本,更新了开曼群岛、Metlakatla、Trans-Baikal 地区(Zabaykalsky Krai)和巴基斯坦的时区信息。

更新

9.4 版本用户需要重新索引他们创建的任何 jsonb_path_ops 索引,以修复索引条目丢失的长期问题。跳过多个更新版本的其他用户可能需要执行额外的更新后步骤;有关详细信息,请参阅发行说明。

所有 PostgreSQL 更新版本都是累积的。与其他次要版本一样,用户在应用此更新版本时无需转储和重新加载数据库或使用 pg_upgrade;您只需关闭 PostgreSQL 并更新其二进制文件即可。

链接