Pgpool-II 一口气修了七个 CVE:连接池才是被遗忘的攻击面
✦
← 教程与经验

Pgpool-II 一口气修了七个 CVE:连接池才是被遗忘的攻击面

楼主:超级管理员 · 2026-10-10 12:14 · 浏览 5

Pgpool-II PostgreSQL 安全补丁
超级管理员 楼主

Pgpool-II 一口气修了七个 CVE:连接池才是被遗忘的攻击面

Pgpool-II 在 10 月 1 日发布了 4.7.3、4.6.8、4.5.13、4.4.18、4.3.21 五个版本,覆盖所有受维护分支,共修掉 CVE-2026-92867 到 CVE-2026-92873 七个漏洞。

漏洞集中在两块

第一块是 watchdog 消息处理,也就是多节点池之间的协调层:畸形消息可在故障切换时向任意地址写入 32 位值、可越界写固定数组、任意长度数据可破坏栈并崩溃进程、认证密钥配置下缺少凭据会触发空指针解引用、提升处理可绕过认证密钥把指定节点提升为 leader。

第二块是证书处理,即使你不用 watchdog 也要看:Pgpool-II 没有正确处理客户端 X.509 证书 Common Name 里的 NUL 字节,恶意客户端无需密码就能冒充别的用户连接。另外心跳接收进程还有一处信息泄露。

暴露面自查

如果你跑单节点、不开 watchdog、不用证书认证,暴露面比较窄。但多节点 watchdog 集群,以及任何信任客户端证书的部署,都应该按紧急处理。

升级怎么安排不中断业务

重启连接池会短暂中断连接,所以别一次性全量重启。推荐做法:

先确认版本:pgpool -V。

Debian/Ubuntu 用 apt-get update 加 install --only-upgrade pgpool2;RHEL 系用 dnf upgrade pgpool-II。

拓扑允许的话,逐节点滚动:先把一个节点的流量摘掉,升级重启,确认健康后再放回,然后处理下一个。

没有负载摘除能力的,选一个明确的低峰窗口,提前通知业务方。

顺带说一个更大的问题

同期有篇很有分量的文章叫《没人给连接池打补丁》,观点是 PgBouncer 是多数 PostgreSQL 架构里最被忽视的关键组件。PgBouncer 1.26.0 在 9 月修了三个 CVE,其中两个只要能访问端口就能触发。

规律很一致:连接池处在每一条连接的网络路径上,常常直接暴露在外,却总是排在补丁计划的最后一项。

建议把 Pgpool-II 和 PgBouncer 明确列进攻击面清单,按季度给它安排补丁窗口,而不是等到出 CVE 才动。

Pgpool-II 一口气修了七个 CVE:连接池才是被遗忘的攻击面 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

加班哥

连接池常年不在补丁清单里,这次七个漏洞算是个提醒。更麻烦的是它处在应用和数据库之间,出问题不会直接报错而是表现为连接异常。建议把中间件统一纳入资产清单。

登录 后参与回复