Python 五个分支同日发紧急安全版:eMudhra 证书事件烧到 pip,开发者该升了
Python 在 10 月 26 日一口气给五个分支发了紧急安全版:3.15.2、3.14.10、3.13.18、3.12.16、3.11.18。五个版本同一天、同个原因——eMudhra 证书事件烧到了 Python 的 SSL 模块,连带着 pip 也受影响。写代码的人和跑 Python 服务的人,这次都该看一眼自己的版本。

上图:Python 五个分支同日发紧急安全版,根因是 eMudhra 证书事件。
对谁有用
两类人最该重视:用 pip 装包的开发者——pip 走 HTTPS,证书校验出问题就可能被中间人钻空子;跑 Python 服务的站长和运维——服务器上的 Python 解释器、各类爬虫和自动化脚本都在影响范围内。只在本地写点小脚本、不联网的人,影响小得多,但顺手升级也没坏处。
有什么变化
主因是 CVE-2026-115557:屏蔽被泄露的 eMudhra 中间 CA 密钥。这次更新后,Python 的 ssl 模块会直接拒绝信任这批泄露密钥签发的证书。官方的说法是:升完之后正常用 pip(包括用 pip 升级 pip 本身),不再受这把泄露密钥的攻击影响。eMudhra 事件本身的来龙去脉,本站之前已经写过一篇,这里不再重复——简单说就是一家证书机构的中间 CA 私钥出了问题,各家软件都在连夜把相关证书拉黑。
还顺手修了两个别的漏洞。CVE-2026-114583:tarfile.tar_filter 的绕过问题;http.cookiejar 开始拒绝负版本号的 Cookie。这两个不如主因紧急,但同样是安全修复。
注意一个版本差异:只有 3.15.2 和 3.14.10 提供二进制安装包。3.13.18、3.12.16、3.11.18 这三个是源码安全版——意思是官方只发了源码补丁,没有现成的安装程序。还在用 3.13 及更早版本的人,要么自己从源码编译,要么等 Linux 发行版或包管理器推送打好补丁的包。
读者下一步能做什么
先查版本:终端里跑 python --version 或 python3 --version。如果显示 3.15.x 低于 3.15.2、或 3.14.x 低于 3.14.10,去 Python 官网下载对应安装包覆盖安装,装完再跑一次确认版本号。如果是 3.13 及更早版本,检查发行版的更新:Ubuntu、Debian 这类系统一般会在自家软件源里推修复版,跟着系统更新走就行。服务器上跑着 Python 服务的,升级后记得重启相关服务,让新解释器生效。微软那边同一天也为 Windows 发了清理 eMudhra 问题证书的带外更新,Windows 用户可以顺便看本站另一篇。
站长判断
eMudhra 这件事已经烧了快一周:先是浏览器和操作系统拉黑证书,现在轮到 Python 和 pip。单看这次更新,动作很小——就是把一把泄露的密钥拉黑;但它的信号很明确:证书信任链上的任何一个环节出问题,下游所有软件都得跟着动。开发者的正确姿势是把 Python 当成系统组件一样对待:小版本安全更新出来就跟,别攒着。3.13 及更早版本没有二进制包这件事也值得注意——还在用老分支的人,要么尽快规划升到 3.14/3.15,要么确认发行版会持续给安全补丁,别等到哪天连补丁都没有了才动手。
相关阅读
- 一家 CA 的私钥居然是「4」:eMudhra 证书事件,半个互联网连夜换锁
- 微软带外发 KB5134133:给断网电脑清掉 eMudhra 问题证书,联网的电脑不用管
- 微软紧急给 .NET 打补丁:Brotli 漏洞波及 8/9/10 三代,十月补丁没修干净
信息来源:Python Insider 官方博客:Python 3.15.2 / 3.14.10 / 3.13.18 / 3.12.16 / 3.11.18 安全发布。版本号与 CVE 编号以官方博客为准。
发表评论