pg_dump 修复 tar 恢复脚本的保护键
PostgreSQL 修复 tar 格式归档中 restore.sql 的 `\restrict` 保护失效的问题。限制键固定为 `(null)`,文件开头还会先执行没有对应 `\restrict` 的 `\unrestrict`;攻击者若能改写恢复脚本,安全边界无法发挥作用。补丁让恢复脚本使用可校验的限制键,并回补至 PostgreSQL 14。使用 tar 归档、允许编辑 restore.sql 的团队应重新生成归档并核对恢复流程。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 26 条。
PostgreSQL 修复 tar 格式归档中 restore.sql 的 `\restrict` 保护失效的问题。限制键固定为 `(null)`,文件开头还会先执行没有对应 `\restrict` 的 `\unrestrict`;攻击者若能改写恢复脚本,安全边界无法发挥作用。补丁让恢复脚本使用可校验的限制键,并回补至 PostgreSQL 14。使用 tar 归档、允许编辑 restore.sql 的团队应重新生成归档并核对恢复流程。
PostgreSQL 修复了逻辑复制订阅端信任发布端关系类型的问题。恶意或非 PostgreSQL 发布端可以在协议中指定系统目录,超级用户拥有的订阅进程此前可能把变更写入系统目录;受影响范围包括 PostgreSQL 14 及以后。补丁在订阅端打开目标关系、建立关系列表时都拒绝系统目录和临时表,并以 CVE-2026-120145 跟踪。使用外部逻辑复制源或超级用户订阅的环境应等待相应维护版本并检查来源。
PostgreSQL 修复 `pg_show_all_settings()` 扫描期间加载模块造成的 use-after-free。函数会缓存 GUC 条目指针;如果同一查询随后加载扩展,扩展前缀的占位条目会被释放,旧指针可能返回过期数据或令后端崩溃。补丁改用物化模式,在其他表达式执行前消费完整 GUC 数组,并回补至 PostgreSQL 16;该问题编号为 CVE-2026-120152。使用动态加载模块和该函数的环境应安排升级。
PostgreSQL 修复 `NULLS NOT DISTINCT` 唯一索引参与外连接 `GROUP BY` 消除时的错误结果。优化器原本认为唯一索引可以证明某些分组列函数依赖于其他列,但外连接补出的 NULL 行会与真实 NULL 行落入同一组,移除列后便可能合并本应分开的结果。补丁在可能被外连接置空的关系上恢复 `NOT NULL` 要求,并回补至 PostgreSQL 18。使用该索引特性和复杂外连接查询的用户应升级并复核结果。
PostgreSQL 修复逻辑解码遇到并发分区分离未完成状态时的崩溃。`DETACH PARTITION CONCURRENTLY` 被锁超时、取消或断连打断后,分区仍标记为待分离,但祖先列表已为空;对 `FOR ALL TABLES` 发布解码变更会触发断言失败,非断言构建则可能空指针解引用,订阅进程因此进入崩溃循环。补丁一次性获取祖先并按独立表处理,问题可追溯至 14,回补至 15。
PostgreSQL 修复恢复表达式扩展统计信息时丢失数据的问题。`ANALYZE` 对 `range_length_histogram` 和 `most_common_elems` 可能写入空数组,`pg_dump` 输出 `{}`,但旧的 `pg_restore_extended_stats()` 把它当成非法输入,导致升级或恢复后统计信息缺失。补丁只放行这两类空数组,拒绝不应为空的数值数组,并回补至 19。升级链路应复核统计信息。
动态 RECORD 返回类型的物化集合返回函数可能复用错误元组描述符,造成错结果、崩溃或读取越界数据;修复回补至 14,并编号 CVE-2026-120141。
继承父表被约束排除且子表多出列时,MERGE 的 INSERT 初始化会失败;补丁回补至 15。
MERGE 的 BY SOURCE 动作若来自连接关系,源表下层 Vars 可能漏标为空值,导致错误结果;补丁回补至 17。
postgres_fdw 选项数组内存分配失败后会留下半初始化指针,后续同一会话可能崩溃;补丁回补至 19。
元组大小计算从 64 位值写入 32 位变量可能整数回绕并覆盖服务器内存;补丁加入溢出检查并回补至 14。
Brume 2.1 用确定性转换生成保持外键关联的 PostgreSQL 测试副本,支持列级假名化、子集抽取和声明式配置。
PDS 预览把 MySQL 与 PostgreSQL 的 Kubernetes 运维控制面放进用户自己的 AWS 账户,提供环境模板、备份与基础监控。
PostgreSQL 18.7 因 CVE-2026-6460 再次触及 C 扩展 ABI;升级时部分扩展需重编或改源码,关闭检查会有安全代价。