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

2015-10-08 安全更新发布

发布于 2015-10-08,作者 PostgreSQL 全球开发组

PostgreSQL 全球开发组已发布对其所有受支持版本数据库系统的更新,包括 9.4.5、9.3.10、9.2.14、9.1.19 和 9.0.23。此次发布修复了两个安全问题,以及过去四个月发现的若干错误。易受安全问题影响的用户应立即更新其安装;其他用户应在下次计划停机时更新。这也是 9.0 主版本的最后一个更新版本。

安全修复

此次更新修复了两个影响特定 PostgreSQL 功能用户安全问题

CVE-2015-5289:由任意用户输入构造的 json 或 jsonb 输入值可能导致 PostgreSQL 服务器崩溃并造成拒绝服务。

CVE-2015-5288:可选的 pgCrypto 扩展中包含的 crypt() 函数可能被利用来读取少量额外的内存。目前尚未针对此问题开发出可行的利用代码。

PostgreSQL 项目感谢 Josh Kupershmidt 和 Oskari Saarenmaa 报告了这些问题。

此次更新还将默认禁用 SSL 重新协商;此前,SSL 重新协商是默认启用的。SSL 重新协商将在 PostgreSQL 9.5 及更高版本中完全移除。

其他修复和改进

除上述内容外,此次发布还基于用户在过去几个月报告的错误修复了许多其他问题。这些修复包括:

  • 防止深度嵌套的正则表达式、LIKE 和 SIMILAR 匹配导致服务器崩溃
  • 在正则表达式处理方面有多个其他修复
  • 确保 ALTER TABLE 为 CONSTRAINT 修改设置所有锁
  • 修复游标失败时的子事务清理,防止崩溃
  • 在设置 commit_delay 时防止 WAL 插入期间死锁
  • 修复可更新视图更新期间的锁定
  • 防止关系缓存“init 文件”损坏
  • 提高大型 SPI 查询结果的性能
  • 提高 LISTEN 的启动时间
  • 默认禁用 SSL 重新协商
  • 降低 *_freeze_max_age 参数的最小值
  • 将 wal_buffers 的最大值限制为 2GB
  • 防止多个区域潜在的堆栈溢出
  • 修复日期时间输入中 DOW 和 DOY 的处理
  • 允许更早地取消正则表达式查询
  • 修复了各种规划器错误
  • 修复了 postmaster 中的几个关闭问题
  • 使抗溢出自动清理更加健壮
  • 修复了 GIN 和 SP-GiST 索引的一些小问题。
  • 修复了 PL/Python、PL/Perl 和 PL/Tcl 的几个问题
  • 改进 pg_stat_statements 的垃圾回收
  • 改进 pgsql_fdw 中的整理(collation)处理
  • 改进 libpq 对内存不足情况的处理
  • 防止 psql 在没有当前连接时崩溃
  • 对 pg_dump 进行多项修复,包括文件和对象权限
  • 改进从旧 PostgreSQL 版本转储时的权限处理
  • 修复了 Alpha、PPC、AIX 和 Solaris 平台的支持问题
  • 修复了 Windows 上使用中文本地化时的启动问题
  • 修复了 Windows 的 install.bat 脚本以处理文件名中的空格
  • 使 PostgreSQL 的数字版本号可供扩展使用

此次更新还包含 tzdata 2015g 版本,更新了开曼群岛、斐济、摩尔多瓦、摩洛哥、诺福克岛、朝鲜、土耳其、乌拉圭以及新的时区 America/Fort_Nelson。

9.0 的最终更新

9.0.23 是 9.0 主版本的最终更新,该版本现已按计划达到生命周期结束(EOL)。未来的安全更新将不包含 9.0 版本。因此,该版本的用户应尽快计划升级到其他主版本。有关社区支持策略和 EOL 时间表的更多信息,请参阅 版本控制策略

更新

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

链接