PostgreSQL 全球开发组针对当前所有被支持版本发布了一次更新,版本包括:17.1、16.5、15.9、14.14、13.17 和 12.21。此版本修复了过去几个月报告的 4 个安全漏洞和 35 多个错误。
这是 PostgreSQL 12 系列的最终版本,之后 PostgreSQL 12 将不再接受安全和错误修复。如果你正在生产环境中运行 PostgreSQL 12,官方建议制定升级计划。
安全问题
- CVE-2024-10976: PostgreSQL row security below e.g. subqueries 忽略了用户 ID 更改
- CVE-2024-10977:PostgreSQL libpq 保留了来自 man-in-the-middle 的错误消息
- CVE-2024-10978:PostgreSQL SET ROLE、SET SESSION AUTHORIZATION 重置为错误的用户 ID
- CVE-2024-10979:PostgreSQL PL/Perl 环境变量更改执行任意代码
Bug Fixes and Improvements
- 修复附加或分离具有外键约束的表分区时出现的问题。升级后,受此问题影响的用户需要执行手动步骤来完成修复。
- 修复了当使用 libc 作为默认 collation provider 时,
LC_CTYPE
为C
,而LC_COLLATE
为不同语言的问题。可能会导致不正确的查询结果。此问题仅影响 17.0。 - 修复 COPY FORCE_NOT_NULL 和 FORCE_NULL.的验证。
- 修复当
json_objectagg()
调用包含易失函数时服务器崩溃的问题。 - 修复提交可序列化事务时的竞争条件。
- 修复
COMMIT PREPARED
中的竞争条件,该条件可能需要在崩溃并恢复后手动删除文件。 - 减少逻辑解码内存消耗。
- 修复 ARM(aarch64)系统上的 JIT 崩溃问题。
- psql /watch 现在会将小于 1ms 的值视为 0(执行之间无需等待)。
- 修复在 password file (
pgpass
) 中使用复制用户凭据失败的问题 pg_combinebackup
现在会在本应包含完整备份的目录中出现增量备份文件时出错。- 修复在
vacuumdb
和并行reindexdb
中避免重新索引临时表和索引的问题。
更多详情可查看官方公告。