CVE-2026-111943Go crypto/x509 信任了被攻破的中间证书
Go 的根证书和中间证书处理逻辑接受了这条弱密钥的 eMudhra 证书链。Go 1.27.3 和 1.26.10 已修复;1.25 及更早版本不会修复。
eMudhra CA 中间证书私钥弱到离谱:每一个都是小于 256 的数
emSign ECC Root CA - G3 下的八张中间证书(六张 TLS,两张代码签名)由 Sectigo 交叉签名,它们的 P-384 私钥都是小于 256 的整数。任何人都能瞬间还原出私钥,给任意域名签发证书。
CA 的私钥本该是一个 384 位的秘密;这几个却小到掰着手指脚趾就能数过来,谁都能给任意网站签出“受信任”的证书。
CA 的私钥,是“这真的是你的银行”这句话能成立的根本。eMudhra 有八张中间证书,P-384 私钥都是小于 256 的整数。据研究人员 Scott Helme 说,其中一个就是数字 4。谁要是注意到了,就能给任意域名签证书,而所有信任这条链的客户端都会照单全收。
这些中间证书挂在 emSign ECC Root CA - G3 下面,还带着 Sectigo 的交叉签名,信任它们的范围因此更大。六张是 TLS CA,两张是受微软信任的代码签名 CA。eMudhra 称问题出在密钥封装/解封装的一个缺陷上,导致生成了一批弱密钥。
信任锚被攻破,一般都够得上 L5“屎无前例”。复核之后,我们把它降了一级:
真正的风险在长尾:各语言运行时、Java cacerts、各类设备,以及还带着旧证书包的老容器。
还有一个问题没有定论。Mozilla 的 bug 里提到大约 3 万张订户证书需要迁移,这和 eMudhra 声明中“这些密钥没签发过任何终端实体证书”的说法对不上。
CVE-2026-111943Go 的根证书和中间证书处理逻辑接受了这条弱密钥的 eMudhra 证书链。Go 1.27.3 和 1.26.10 已修复;1.25 及更早版本不会修复。
CVE-2026-113470Firefox 的修复:不再信任这八张中间证书,并移除该根证书。
| 产品 | 安全版本 | 备注 |
|---|---|---|
| Go | 1.27.3 / 1.26.10 | CVE-2026-111943。Go 1.25 及更早版本不会修复 |
| Python certifi | 2026.10.19 | |
| Node.js | 22.23.4 / 24.22.1 / 26.12.1 | 内置 NSS 3.131.1 的 CA 证书包 |
| Mozilla NSS | 3.131.1 | 10月20日移除根证书 |
| Cloudflare WARP / 1.1.1.1 / cloudflared | 2026.10.2 | |
| Java (cacerts) | unknown | 我们查阅的来源均未提及,请向厂商确认 |
2025年4月30日
私钥生成,同一批共 24 张中间证书
2026年10月17日
一名研究人员向 Chrome(18:05 UTC)和 Mozilla(20:06 UTC)报告
Chrome 在 19:45 UTC 前通过 CRLSet 拦截了六张 TLS 中间证书;Mozilla 在 22:59 UTC 前通过 OneCRL 拦截。Mozilla 自己也还原出了私钥。
2026年10月18日
八张证书全部以 caCompromise 为由吊销
这是 Mozilla bug 里的说法。eMudhra 自己的声明说吊销发生在 10月19日。
2026年10月19日
Apple 和 Android 拦截这些证书;certifi 发布修复
2026年10月20日
微软拦截;Go 发布修复;NSS 移除根证书
2026年10月21日
Node.js 安全更新拒绝这些密钥
2026年10月27日前后
Chrome Root Store v43 移除 emSign ECC Root CA - G3
我们列出每条说法和它的出处,并标出一手来源(厂商、研究人员、软件仓库)。各方说法不一致时,按最坏的可信情况定级。