PostgreSQL 全球开发组已发布所有受支持版本的更新,包括 18.2、17.8、16.12、15.16 和 14.21。本次发布修复了 5 个安全漏洞以及过去数月报告的 65 个以上 Bug。
完整变更列表请参阅发行说明。
oidvector 泄露少量内存字节CVSS v3.1 基础评分:4.3
受影响的支持版本:14 - 18。
PostgreSQL 中 oidvector 类型的验证不当,允许数据库用户泄露服务器的少量内存字节。虽然我们尚未排除攻击者利用泄露字节获取机密信息的可能性,但此类攻击的可行性较低。PostgreSQL 18.2、17.8、16.12、15.16 和 14.21 之前的版本受此影响。
PostgreSQL 项目组感谢 Altan Birler 报告此问题。
intarray 选择性估算器缺少输入类型验证,可执行任意代码CVSS v3.1 基础评分:8.8
受影响的支持版本:14 - 18。
PostgreSQL intarray 扩展的选择性估算器函数缺少输入类型验证,允许对象创建者以运行数据库的操作系统用户身份执行任意代码。PostgreSQL 18.2、17.8、16.12、15.16 和 14.21 之前的版本受此影响。
PostgreSQL 项目组感谢 Daniel Firer(来自 zeroday.cloud)报告此问题。
pgcrypto 堆缓冲区溢出可执行任意代码CVSS v3.1 基础评分:8.8
受影响的支持版本:14 - 18。
PostgreSQL pgcrypto 中的堆缓冲区溢出漏洞允许密文提供者以运行数据库的操作系统用户身份执行任意代码。PostgreSQL 18.2、17.8、16.12、15.16 和 14.21 之前的版本受此影响。
PostgreSQL 项目组感谢 Team Xint Code(来自 zeroday.cloud)报告此问题。
CVSS v3.1 基础评分:8.8
受影响的支持版本:14 - 18。
PostgreSQL 文本处理中缺少多字节字符长度验证,允许数据库用户通过构造特殊查询实现缓冲区溢出,从而以运行数据库的操作系统用户身份执行任意代码。PostgreSQL 18.2、17.8、16.12、15.16 和 14.21 之前的版本受此影响。
PostgreSQL 项目组感谢 Paul Gerste 和 Moritz Sanft(来自 zeroday.cloud)报告此问题。
pg_trgm 堆缓冲区溢出向服务器内存写入模式数据CVSS v3.1 基础评分:8.2
受影响的支持版本:18。
PostgreSQL pg_trgm 中的堆缓冲区溢出漏洞允许数据库用户通过构造特殊输入字符串造成未知影响。攻击者对可写入的字节模式控制有限,但我们尚未排除导致权限提升的攻击可行性。PostgreSQL 18.1 和 18.0 受此影响。
PostgreSQL 项目组感谢 Heikki Linnakangas 报告此问题。
本次更新修复了过去数月报告的 65 个以上 Bug。以下列出的问题影响 PostgreSQL 18,其中部分问题也可能影响其他受支持版本。
ltree 扩展中大小写不敏感文本匹配不一致的问题。如果您在 ltree 列上使用了索引,某些情况下可能需要重建索引。详见"升级"部分的附加说明。ALTER TABLE ... ADD CONSTRAINT 在已标记为 NOT NULL 的列上添加 NOT NULL 约束时,现在要求约束名称与已有约束名称匹配。WITH 查询中执行 MERGE 时的触发器行为,使其包含受 MERGE 影响的行。NOTIFY 错误处理和报告方面的修复。ALTER PUBLICATION 以确保事件触发器包含所有已设置的选项。file_extend_method,用于控制 posix_fallocate() 的使用。psql 中 VACUUM 命令选项的 Tab 补全。pg_dump 以优雅处理并发序列删除,并在调用用户明确缺少序列读取权限时报错。amcheck 在 btree 检查方面的修复。pg_stat_statements 在 IN 列表同时包含常量和非常量表达式时崩溃。本次发布还将时区数据文件更新至 tzdata 2025c 版本,其中仅包含 1976 年前 Baja California 时间戳的历史数据变更。
所有 PostgreSQL 更新版本都是累积性的。与其他小版本更新一样,用户无需转储和重新加载数据库或使用 pg_upgrade 来应用本次更新;只需关闭 PostgreSQL 并更新其二进制文件即可。
如果您在 ltree 列上有索引且未使用 libc 排序规则提供程序,在升级到最新版本后,必须对所有 ltree 列重建索引。您可以使用 REINDEX INDEX CONCURRENTLY 来最大程度减少对系统的影响。
跳过一个或多个更新版本的用户可能需要执行额外的更新后步骤;详情请参阅早期版本的发行说明。
更多详情请参阅发行说明。
如果您对本发布公告有任何更正或建议,请发送至 pgsql-www@lists.postgresql.org 公共邮件列表。