CVE-2026-92868 出来后,把我们的 Pgpool-II 统一升了一遍。记录完整流程。
为什么这次要认真做
这是一个认证绕过漏洞。我们在池层终止客户端 X.509 证书,也就是说我们以为已经生效的身份验证,实际上可能被绕过。
连接池的位置决定了它的严重性——它是所有数据库流量的必经之路。这里出问题,其他防护基本失效。
第一步:清点
这一步比想象中难。我们的实例分散在多个环境,有些是很久之前搭的,没有文档。
最后是用进程列表 + 配置文件搜索 + 网络监听端口三条路并起来才清全。建议平时就维护一份清单,别等出事再找。
第二步:选版本
- 4.7.3 / 4.6.8 / 4.5.13 / 4.4.18 / 4.3.21
按各自的版本线选。不要跨版本线跳跃。
第三步:备份
配置文件、状态、以及数据库的当前连接快照。升级失败要能回退。
第四步:排空窗口升级
关键点是要先把连接排空。直接重启会中断业务。
我们的做法是:先把应用流量切走,观察活动连接数降到接近零,再执行升级。
第五步:验证
升级后重点验证三件事:
- 证书认证仍然生效(用无效证书尝试连接,应该被拒)。
- 连接池的正常工作(并发连接、连接复用)。
- watchdog 行为正常。
第六步:收紧边界
借这次机会,把所有池层的公网可达性检查了一遍。能收到内网的就收。
第七步:纳入常规节奏
这次最大的收获是意识到了一个管理问题:连接池从来没进过补丁清单。
之后我们把 Pgpool-II 和 PgBouncer 都加进了月度补丁流程,和其他中间件同等对待。
顺带
Dasha 1.8 这个开源 Postgres 集群看板挺好用,新增了基于 pg_stat_statements 的索引建议(附可直接执行的 CREATE INDEX CONCURRENTLY)和基于 pg_stat_io 的 I/O 分析页,还带 MCP 连接器。做巡检工具的话可以看看。
本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。