PostgreSQL 17.5、16.9、15.13、14.18 和 13.21 发布!

发布于 2025-05-08,PostgreSQL Global Development Group
PostgreSQL 安全相关

PostgreSQL 全球开发组已发布所有受支持版本的更新,包括 17.5、16.9、15.13、14.18 和 13.21。本次发布修复了 1 个安全漏洞以及过去数月报告的 60 个以上的 Bug。

完整变更列表请查阅发布说明

PostgreSQL 13 生命周期终止通知

PostgreSQL 13 将于 2025 年 11 月 13 日停止接收修复更新。如果您正在生产环境中运行 PostgreSQL 13,建议您尽早制定升级计划,迁移到更新的受支持版本。更多信息请参阅我们的版本策略

安全问题

CVE-2025-4207:PostgreSQL GB18030 编码验证可能在验证失败的文本上越界读取一个字节

CVSS v3.1 基础评分:5.9

受影响的版本:13 - 17。

PostgreSQL GB18030 编码验证中存在缓冲区越界读取问题,在一字节越界读取可导致进程终止的平台上,数据库输入提供者可能造成临时拒绝服务。此问题同时影响数据库服务器和 libpq。PostgreSQL 17.5、16.9、15.13、14.18 和 13.21 之前的版本受此影响。

Bug 修复与改进

本次更新修复了过去数月报告的 60 个以上的 Bug。以下列出的问题影响 PostgreSQL 17,其中部分问题也可能影响其他受支持版本。

  • 正确处理分区表上的自引用外键。创建或附加分区时,如果外键约束引用的是同一个分区表,此前未能创建必要的系统目录条目,导致约束无法被完全强制执行。修复方法请参阅"更新"章节的说明。
  • 修复了使用 BRIN bloom 索引(如使用 date_bloom_ops 运算符类)时潜在的数据丢失问题。
  • 修复了对带有 DO NOTHING 操作的分区表执行 MERGE 的问题。
  • 修复了当表具有域类型GENERATED且域约束不允许 NULL 值时,INSERT 命令失败的问题。
  • 修复了 ALTER TABLE .. ADD COLUMN域类型有自己的默认值但列未设置 DEFAULT 时的处理问题。
  • 修复了在 JSON 构造表达式的键中进行类型转换时的问题。
  • 修复了 XMLSERIALIZE() 在视图或规则中存在 INDENT 选项时未正确转储的问题,该问题在恢复时较为明显。
  • 多项查询规划器修复,包括避免在同时具有 FILTERORDER BYDISTINCT 子句的聚合函数中过早求值参数,以防止不必要的失败。
  • 修复了在 Vacuum 同时运行于同一表上时,无输出列的位图扫描可能返回不正确结果的问题。
  • 修复了存在大量搜索键时 GIN 索引搜索启动的性能问题,例如 jsonbcol ?| array[...] 包含数万个数组元素的情况。
  • 确保活动 WAL 发送器的 I/O 统计信息在最多一秒内被报告。
  • 修复了启动后立即处理 synchronous_standby_names 时的竞态条件,此前后端进程可能未能等待同步提交。
  • 避免在 scram_iterations 设为 INT_MAX 时出现无限循环。
  • 多项逻辑复制修复,包括处理逻辑解码仍需的已删除行周围的 Vacuum 操作。
  • 防止未获取强锁的模式修改操作(DDL)影响正在进行逻辑复制的表时导致的潜在数据丢失。
  • 防止逻辑复制中因应用工作进程错误处理而导致重复数据被应用的问题。
  • 改进了 reindexdb 调度并行重建索引操作的方式,以实现预期的并行度。

本次发布还将时区数据文件更新至 tzdata 2025b 版本,包含智利夏令时法律变更以及伊朗的历史修正。此外,新增时区 America/Coyhaique 用于智利艾森大区,以反映其全年采用 UTC-03 时区,与 America/Santiago 不同。

更新

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

如果您在分区表上创建了自引用外键,更新后应删除并重新创建这些自引用外键(如果在约束创建后曾创建或附加分区)。分区中可能存在违反此约束的行,在这种情况下重新创建约束将失败,您需要先修正这些行后再重试。

跳过了一个或多个更新版本的用户可能需要执行额外的更新后步骤;详情请参阅早期版本的发布说明。

更多详情请参阅发布说明

链接

如果您对本发布公告有更正或建议,请发送至 pgsql-www@lists.postgresql.org 公共邮件列表