PostgreSQL 小版本大地震:一次修掉 52 个安全漏洞

PostgreSQL 小版本大地震:一次修掉 52 个安全漏洞

💡 原文中文,约4800字,阅读约需12分钟。
📝

内容提要

PostgreSQL于11月12日发布18.7至14.25多个小版本,单次修复52个CVE和140多个Bug,规模罕见,主因是AI辅助代码审计加强。漏洞多为类型混淆、释放后使用等,涉及plperl、dblink、pg_dump等。建议尽快升级,重编C扩展、重建受影响索引并刷新备份基线;PG 14已停止支持。Pigsty v4.6.0同步跟进,PostgreSQL简体中文消息已进入14至19各版本。

🔎

延伸解读

AI 审计让“陈年暗伤”集中暴露

本轮 52 个 CVE 中,32 个 CVSS 评分同为 8.8,且多为类型混淆、释放后使用、堆溢出等典型模式,致谢栏出现多家 AI 安全团队,说明自动化审计正在系统性翻查旧代码。对用户而言,这意味着漏洞发现节奏可能持续加快,不能再用“往年一季度只修几个”的经验判断升级紧迫性。

内网隔离挡不住提权与坏备份

文章提醒,部分漏洞只需建对象等普通权限即可触发,pg_dump、pg_restore 也可能被恶意源库或来路不明的备份文件利用;备份损坏、索引查错数更不受防火墙影响。因此即便数据库位于内网,也应把本次小版本纳入近期维护窗口,而不是仅依赖网络隔离。

换二进制之外的三项收尾

同一大版本内升级虽不需 pg_upgrade,但文章列出必须跟进的事项:C 扩展需用新头文件重编,部分还需改源码;排查并重建受影响的 GIN、GiST 与 bpchar 列 B-tree 索引;开启增量备份的需重打全量备份刷新基线,并巡检分区表约束。只替换内核二进制可能留下隐患。

PG 14 谢幕与汉化进展

14.25 是 PostgreSQL 14 的最后一个版本,仍在运行 14 的用户需安排大版本升级。与此同时,简体中文消息已进入 14 至 19 全部六个大版本,服务端与命令行工具的提示和报错可显示中文,PG 19 各组件覆盖率在 99%–100%,这对中文运维体验是实质性改善。

❓

Q&A

PostgreSQL 这次小版本更新为什么一次性修复了 52 个安全漏洞?

主要原因是 AI 辅助代码审计的加强。官方发布注记的致谢栏中出现了 OpenAI Security Research Team、OpenAI Codex Security、Anthropic OSS program、Claude 与 Ada Logics 等,自动化审计工具对代码进行了大规模排查,导致大量陈年漏洞被集中发现。

这次修复的漏洞主要有哪些类型?涉及哪些组件?

漏洞类型以类型混淆、释放后使用、堆缓冲区溢出和整数回绕为主,其中 32 个 CVE 的 CVSS v3.1 评分高达 8.8,多涉及任意代码执行。受影响组件包括复合类型、plperl/pltcl、dblink、统计信息导入、pg_dump、pg_restore、reindexdb、vacuumdb 等。

升级到新小版本后,除了替换内核二进制,还需要做哪些额外操作?

需要:1) 用新版头文件重新编译 C 语言扩展,部分扩展还需修改源码;2) 排查并重建受影响的索引,包括 GIN 索引、使用 gist_trgm_ops 的 GiST 索引、未限定长度 bpchar 列上的 B-tree 索引;3) 若开启增量备份,升级后重打全量备份刷新基线;4) 检查分区表是否存在不该有的 NOT NULL NO INHERIT 约束。

PostgreSQL 14 现在还能继续使用吗?

不能,PostgreSQL 14 的最后一个版本 14.25 已于 11 月 12 日发布,此后正式停止支持(EOL)。仍在使用 PG 14 的用户应尽快规划大版本升级。

Pigsty 针对这次 PostgreSQL 小版本更新做了哪些跟进?

Pigsty v4.6.0 在 PostgreSQL 发版当天同步跟进,版本基线对齐到 PostgreSQL 18.7 与 Pig 1.11.0,并推进全平台扩展重编译、软件源同步和离线安装包更新。此外还更新了 PostgreSQL 中文文档。

PostgreSQL 的简体中文消息汉化目前进展如何?

由冯若航(Ruohang Feng)重做并审校的简体中文消息(NLS zh_CN)已正式进入 PostgreSQL 14 到 19 全部六个大版本。PG 19 简体中文各组件覆盖率在 99%–100%,PG 14–18 在 98%–100%,封版前零星消息也已补齐到 100%。

🏷️

标签

➡️

继续阅读