EN
L4 · 化粪池炸了PKI · CA · TLSemudhra-ca

eMudhra:八个 CA 私钥,计算器按几下就猜出来了

eMudhra CA 中间证书私钥弱到离谱:每一个都是小于 256 的数

emSign ECC Root CA - G3 下的八张中间证书(六张 TLS,两张代码签名)由 Sectigo 交叉签名,它们的 P-384 私钥都是小于 256 的整数。任何人都能瞬间还原出私钥,给任意域名签发证书。

披露时间
2026年10月17日
公开披露日期
严重程度
化粪池炸了
本页收录 2 个 CVE
波及范围
所有信任 emSign ECC Root CA - G3 或 Sectigo 交叉签名的东西:浏览器、操作系统、Go、Python、Node
go · python · node · browsers
在野利用
未发现
CT 日志里没发现终端实体证书;几小时内就被拦截

一句话说清楚

CA 的私钥本该是一个 384 位的秘密;这几个却小到掰着手指脚趾就能数过来,谁都能给任意网站签出“受信任”的证书。

发生了什么

CA 的私钥,是“这真的是你的银行”这句话能成立的根本。eMudhra 有八张中间证书,P-384 私钥都是小于 256 的整数。据研究人员 Scott Helme 说,其中一个就是数字 4。谁要是注意到了,就能给任意域名签证书,而所有信任这条链的客户端都会照单全收。

这些中间证书挂在 emSign ECC Root CA - G3 下面,还带着 Sectigo 的交叉签名,信任它们的范围因此更大。六张是 TLS CA,两张是受微软信任的代码签名 CA。eMudhra 称问题出在密钥封装/解封装的一个缺陷上,导致生成了一批弱密钥。

为什么是 L4 而不是 L5

信任锚被攻破,一般都够得上 L5“屎无前例”。复核之后,我们把它降了一级:

  • 没有迹象表明有人滥用过。证书透明度(CT)日志里没有这些中间证书签发的终端实体证书。
  • 浏览器在收到报告几小时内就拦截了它们,各大平台三天内全部跟进。

真正的风险在长尾:各语言运行时、Java cacerts、各类设备,以及还带着旧证书包的老容器。

还有一个问题没有定论。Mozilla 的 bug 里提到大约 3 万张订户证书需要迁移,这和 eMudhra 声明中“这些密钥没签发过任何终端实体证书”的说法对不上。

马桶里有什么

CVE-2026-111943

Go crypto/x509 信任了被攻破的中间证书

Go 的根证书和中间证书处理逻辑接受了这条弱密钥的 eMudhra 证书链。Go 1.27.3 和 1.26.10 已修复;1.25 及更早版本不会修复。

CVE-2026-113470

Firefox 信任了被攻破的中间证书

Firefox 的修复:不再信任这八张中间证书,并移除该根证书。

修复版本

产品安全版本备注
Go1.27.3 / 1.26.10CVE-2026-111943。Go 1.25 及更早版本不会修复
Python certifi2026.10.19
Node.js22.23.4 / 24.22.1 / 26.12.1内置 NSS 3.131.1 的 CA 证书包
Mozilla NSS3.131.110月20日移除根证书
Cloudflare WARP / 1.1.1.1 / cloudflared2026.10.2
Java (cacerts)unknown我们查阅的来源均未提及,请向厂商确认

案发时间线

  1. 2025年4月30日

    私钥生成,同一批共 24 张中间证书

  2. 2026年10月17日

    一名研究人员向 Chrome(18:05 UTC)和 Mozilla(20:06 UTC)报告

    Chrome 在 19:45 UTC 前通过 CRLSet 拦截了六张 TLS 中间证书;Mozilla 在 22:59 UTC 前通过 OneCRL 拦截。Mozilla 自己也还原出了私钥。

  3. 2026年10月18日

    八张证书全部以 caCompromise 为由吊销

    这是 Mozilla bug 里的说法。eMudhra 自己的声明说吊销发生在 10月19日。

  4. 2026年10月19日

    Apple 和 Android 拦截这些证书;certifi 发布修复

  5. 2026年10月20日

    微软拦截;Go 发布修复;NSS 移除根证书

  6. 2026年10月21日

    Node.js 安全更新拒绝这些密钥

  7. 2026年10月27日前后

    Chrome Root Store v43 移除 emSign ECC Root CA - G3

各方说法

我们列出每条说法和它的出处,并标出一手来源(厂商、研究人员、软件仓库)。各方说法不一致时,按最坏的可信情况定级。

  • Mozilla Bugzilla 2083449一手来源私钥是小于 256 的整数;报告时间、OneCRL 条目,以及 10月18日的吊销
  • eMudhra 声明一手来源归因于密钥封装/解封装缺陷;称其中 7 张从未用于生产,第 8 张没签发过任何证书
  • The Hacker News援引 Scott Helme 的说法,其中一个私钥就是数字 4;各厂商的拦截时间线
  • BleepingComputer浏览器和操作系统厂商的应对