eMudhra 中间 CA 证书被攻陷
摘要
由于密钥生成错误,eMudhra 的八张中间 CA 证书私钥遭到泄露,攻击者可能借此冒充任何网站;目前 Mozilla、Microsoft、Apple 和 Chrome 已通过证书吊销机制封锁了这些证书。
<a href="https://blog.mozilla.org/security/2026/10/20/protecting-firefox-users-following-the-compromise-of-emudhra-intermediate-certificates/" rel="nofollow">https://blog.mozilla.org/security/2026/10/20/protecting-fire...</a><p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2083449" rel="nofollow">https://bugzilla.mozilla.org/show_bug.cgi?id=2083449</a>
查看缓存全文
缓存时间: 2026/10/21 06:23
# eMudhra 中间 CA 私钥泄露事件
来源:https://emuddra.we-have-a-problem.com/
**2026年10月20日**
八个 eMudhra 中间 CA 证书的私钥已被泄露。这些证书签发链最终指向的根证书被 Mozilla、Microsoft、Apple 和 Chrome 根程序以及许多下游信任库所信任。
## 我们如何得知?(https://emudhra.we-have-a-problem.com/#proof)
为了证明私钥已被泄露,原始报告者 Wayne 使用八个中间 CA 的私钥分别对以下消息进行了签名,并于 10 月 17 日向各根程序团队报告了此事:
> 我们遇到了一些问题 - Wayne
proof.zip (https://emudhra.we-have-a-problem.com/proof.zip) 包含该消息,以及每个中间证书对应的证书、公钥和对消息的签名。使用 OpenSSL 验证:
``
openssl x509 -in EM-DV-TLS-CA-G3B.crt.pem -noout -pubkey | diff - EM-DV-TLS-CA-G3B.pub.pem
openssl dgst -sha384 -verify EM-DV-TLS-CA-G3B.pub.pem -signature EM-DV-TLS-CA-G3B.sig message.txt
``
## 已采取了哪些措施?(https://emudhra.we-have-a-problem.com/#actions)
各根程序和许多下游信任库已采取行动以保护其用户。自 10 月 17 日起,Firefox 和 Chrome 已屏蔽了这些证书;自 10 月 19 日起,Apple 设备已屏蔽;自 10 月 20 日起,Microsoft 平台也已屏蔽。
该问题已于 10 月 19 日以负责任的方式向下游信任库披露。许多信任库已发布更新或正在发布更新的过程中。
## 后果是什么?(https://emudhra.we-have-a-problem.com/#consequences)
拥有任何被泄露的中间 CA 私钥的攻击者都可以冒充任何网站或服务。
Mozilla、Microsoft、Apple 和 Chrome 已通过其分发吊销信息的工具(如 OneCRL (https://blog.mozilla.org/security/2015/03/03/revoking-intermediate-certificates-introducing-onecrl/)、CRLite (https://hacks.mozilla.org/2025/08/crlite-fast-private-and-comprehensive-certificate-revocation-checking-in-firefox/) 和 CRLSets (https://www.chromium.org/Home/chromium-security/crlsets/))为用户修复了这一问题。
CA 也已吊销了被泄露的中间证书。然而,许多其他客户端并不消费吊销信息,需要通过软件更新来确保它们不再信任被泄露的中间证书。
## 你的客户端是否仍然信任被泄露的中间证书?(https://emudhra.we-have-a-problem.com/#check)
中间 CA 签发链指向 检测结果
要检查 curl 或其他命令行客户端,运行:
``
curl https://dv-g3b-emudhra.we-have-a-problem.com/
curl https://dv-g3b-aaa-emudhra.we-have-a-problem.com/
``
出现证书错误则说明客户端不信任被泄露的中间证书。
要离线检查信任库,chains.zip (https://emudhra.we-have-a-problem.com/chains.zip) 包含上述十二个主机各自提供的证书链(PEM 格式),并附有使用 OpenSSL 验证的说明。
impacted-intermediates.json (https://emudhra.we-have-a-problem.com/impacted-intermediates.json) 列出了八个中间证书及其 Sectigo 交叉签名。roots.json (https://emudhra.we-have-a-problem.com/roots.json) 列出了它们签发链最终指向的根证书。
## 关于原因我们了解到了什么?(https://emudhra.we-have-a-problem.com/#cause)
中间证书的私钥是由 CA 错误地生成的。这意味着任何人都可以从证书中恢复出这些私钥。
自这些证书在 2025 年 4 月创建以来,就一直存在此风险。在此期间,证书透明度日志中没有这些中间证书的条目,这表明像 Firefox、Chrome、Edge 和 Safari 这样强制执行证书透明度的客户端不可能遭受攻击。
然而,浏览器生态系统之外的许多客户端并不强制执行证书透明度。我们尚不清楚攻击者是否利用了这一有缺陷的密钥生成来攻击这些客户端。
关于原因的更多技术细节记录在 Mozilla 错误追踪系统中的[初始事件报告](https://bugzilla.mozilla.org/show_bug.cgi?id=2083449)中。
## 信任库运营商可以采取哪些措施?(https://emudhra.we-have-a-problem.com/#operators)
请参阅 Mozilla dev-security-policy 论坛中的[此讨论串](https://groups.google.com/a/mozilla.org/g/dev-security-policy/c/0R3XLJL6FuE)。
## 用户可以采取哪些措施?(https://emudhra.we-have-a-problem.com/#users)
用户应尽快将浏览器和操作系统更新到最新版本。
### 开发者软件和包呢?(https://emudhra.we-have-a-problem.com/#developers)
| 软件 | 已修复版本 |
| --- | --- |
| Ubuntu ca-certificates | 20260816ubuntu0.22.04.1, 20260816ubuntu0.24.04.1, 20260816ubuntu0.26.04.1, 20260816ubuntu0.26.10.1 (https://bugs.launchpad.net/ubuntu/+source/ca-certificates/+bug/2171507) |
| Debian ca-certificates | 20250419~deb12u2, 20250419+deb13u1, 20260816+nmu1 (https://bugs.debian.org/1151413) |
| Arch Linux ca-certificates-mozilla | 3.131.1-1 (https://archlinux.org/packages/core/x86_64/ca-certificates-mozilla/) |
| Gentoo ca-certificates | 20260816.3.125 (https://bugs.gentoo.org/984601) |
| Fedora ca-certificates | 2026.2.92_v9.0.319 (https://bugzilla.redhat.com/show_bug.cgi?id=2556376) |
| FreeBSD ca_root_nss | 待发布 (https://reviews.freebsd.org/D60905) |
| Chainguard ca-certificates | 20260909-r3 (https://images.chainguard.dev/security/CVE-2026-111943) |
| Alpine Linux ca-certificates | 20261020-r0 (https://pkgs.alpinelinux.org/packages?name=ca-certificates&arch=) |
| NSS | 3.131.1 (https://groups.google.com/a/mozilla.org/g/dev-tech-crypto/c/vSxZxnOMMvs) |
| curl CA bundle | 2026-10-20 (https://curl.se/docs/caextract.html) |
| Cloudflare CFSSL trust store | 2026.10.1 (https://github.com/cloudflare/cfssl_trust/releases/tag/trust-store-2026.10.1) |
| Homebrew ca-certificates | 2026-09-25_1 (https://github.com/Homebrew/homebrew-core/blob/d02b8762f4a29859c47a635a0d2683223fea9812/Formula/c/ca-certificates.rb) |
| Go | 1.27.3, 1.26.10 (https://groups.google.com/g/golang-announce/c/66pojueaQek) |
| Node.js | 待发布 (https://github.com/nodejs/node/pull/66871) |
| Python certifi | 2026.10.19 (https://github.com/certifi/python-certifi/releases/tag/2026.10.19) |
| pip | 26.2.2 (https://github.com/pypa/pip/releases/tag/26.2.2) |
| uv | 0.13.4 (https://github.com/astral-sh/uv/releases/tag/0.13.4) |
| Rust rustls-webpki | 0.103.16 (https://github.com/rustls/webpki/releases/tag/v%2F0.103.16) |
| Rust webpki-roots / webpki-root-certs | 1.0.10 (https://github.com/rustls/webpki-roots/releases/tag/v%2F1.0.10) |
| Electron | 44.9.1, 43.8.1, 42.11.16 (https://github.com/electron/electron/releases/tag/v44.9.1) |
| Bun | 待发布 (https://github.com/oven-sh/bun/pull/46159) |
| Composer ca-bundle | 1.4.16, 1.6.0 (https://github.com/composer/ca-bundle/pull/154) |
| Elixir castore | 1.0.22 (https://hex.pm/packages/castore/1.0.22) |
| Perl Mozilla::CA | 20261020 (https://metacpan.org/release/LWP/Mozilla-CA-20261020) |
可在 github.com/galadran/we-have-a-problem.com (https://github.com/galadran/we-have-a-problem.com) 添加更多条目。
### macOS curl 有临时解决方案吗?(https://emudhra.we-have-a-problem.com/#macos-curl)
macOS 已屏蔽了被泄露的中间证书,但内置的 `/usr/bin/curl` 会针对 `/etc/ssl/cert.pem` 验证证书,且不检查吊销状态,而该文件尚未更新。要从中移除受影响的根证书,请运行:
``
sudo cp /etc/ssl/cert.pem /etc/ssl/cert.pem.bak &&
awk '/^(###|===) /{skip=0}
/^=== .*\/CN=(AAA Certificate Services|emSign ECC Root CA - G3)$/{skip=1}
!skip' /etc/ssl/cert.pem.bak | sudo tee /etc/ssl/cert.pem > /dev/null
``
### Linux 有临时解决方案吗?(https://emudhra.we-have-a-problem.com/#linux)
在发行版发布更新的 `ca-certificates` 包之前,高级用户可以在系统信任库中将受影响的根证书设为不信任。**不建议普通用户采用此方案。**
在 Debian 和 Ubuntu 上,以 root 身份运行:
``
sed -i \
-e 's|^mozilla/emSign_ECC_Root_CA_-_G3.crt|!&|' \
-e 's|^mozilla/Comodo_AAA_Services_root.crt|!&|' \
/etc/ca-certificates.conf && update-ca-certificates
``
在 Alpine 上,以 root 身份运行:
``
apk add ca-certificates &&
sed -i -e 's|^mozilla/emSign_ECC_Root_CA_-_G3.crt|!&|' \
/etc/ca-certificates.conf && update-ca-certificates
``
在 Fedora、RHEL、CentOS Stream、Rocky Linux、AlmaLinux 和 Amazon Linux 2023 上,以 root 身份运行:
``
d=/etc/pki/ca-trust/source/blocklist; [ -d $d ] || d=/etc/pki/ca-trust/source/blacklist
trust extract --overwrite --format=pem-bundle \
--filter='pkcs11:object=Comodo%20AAA%20Services%20root;type=cert' \
$d/Comodo_AAA_Services_root.pem &&
trust extract --overwrite --format=pem-bundle \
--filter='pkcs11:object=emSign%20ECC%20Root%20CA%20-%20G3;type=cert' \
$d/emSign_ECC_Root_CA_-_G3.pem &&
update-ca-trust
``
在 openSUSE 和 SLES 上,以 root 身份运行:
``
d=/etc/pki/trust/blocklist; [ -d $d ] || d=/etc/pki/trust/blacklist
trust extract --format=pem-bundle \
--filter='pkcs11:object=Comodo%20AAA%20Services%20root;type=cert' \
$d/Comodo_AAA_Services_root.pem &&
trust extract --format=pem-bundle \
--filter='pkcs11:object=emSign%20ECC%20Root%20CA%20-%20G3;type=cert' \
$d/emSign_ECC_Root_CA_-_G3.pem &&
update-ca-certificates
``
在 Arch Linux 上,以 root 身份运行:
``
trust extract --format=pem-bundle \
--filter='pkcs11:object=emSign%20ECC%20Root%20CA%20-%20G3;type=cert' \
/etc/ca-certificates/trust-source/blocklist/emSign_ECC_Root_CA_-_G3.pem &&
update-ca-trust
``
在 NixOS 上,添加到你的配置中:
``
security.pki.caCertificateBlacklist = [
"Comodo AAA Services root"
"emSign ECC Root CA - G3"
];
``
### NetBSD 有临时解决方案吗?(https://emudhra.we-have-a-problem.com/#netbsd)
在 NetBSD 10 及更高版本上,以 root 身份运行:
``
certctl untrust /usr/share/certs/mozilla/all/emSign_ECC_Root_CA_-_G3.pem &&
certctl untrust /usr/share/certs/mozilla/all/Comodo_AAA_Services_root.pem
``
### FreeBSD 有临时解决方案吗?(https://emudhra.we-have-a-problem.com/#freebsd)
在 FreeBSD 14 或更高版本上,以 root 身份运行以下命令:
``
cp /etc/ssl/certs/14bc7599.0 /usr/share/certs/untrusted/14bc7599.pem
cp /etc/ssl/certs/ee64a828.0 /usr/share/certs/untrusted/ee64a828.pem
certctl rehash
``
---
本站由 Dennis Jackson (https://github.com/dennisjackson) 发布。源代码位于 GitHub (https://github.com/galadran/we-have-a-problem.com),欢迎提交 PR。
相似文章
eMudhra 中级 CA 证书被攻破
eMudhra 的八张中级 CA 证书私钥被泄露,这些证书链接到被 Mozilla、Microsoft、Apple 和 Chrome 根程序信任的根证书,所有内置受信证书列表的软件都需要更新(例如 uv、pip、certifi 已发布修复版本)。
八比特的信任;eMudhra 的 CA 密钥在毫秒间被破解
eMudhra 的八个中间 CA 私钥被发现是 P-384 曲线上极其薄弱的单字节值(如 4、56、115),可在不到一秒内被暴力破解,因此 Chrome 和 Mozilla 屏蔽了其根证书。
关于被入侵的 eMudhra 中间 CA
Apple 已开始在设备上屏蔽被入侵的 eMudhra 中间 CA 签发的 12 张 TLS 证书及相关根证书,防止攻击者利用泄露的私钥伪造任意网站的合法证书。命令行工具如 curl 和 git 仍需等待未来 macOS 更新才能完全阻止这些证书。
@GergelyOrosz:这到底是怎么发生的:印度证书颁发机构(CA)eMudhra 只有一项工作(好吧,两项):1. 创建安全的,……
印度证书颁发机构 eMudhra 被曝在生成 384 位私钥时仅从 1 到 256 的数字中选取,严重违反密钥生成与存储的基本安全要求,构成重大 PKI 安全事件。
eMudhra 中间证书泄露后保护 Firefox 用户
Mozilla 在数小时内对 eMudhaar 八个中间证书私钥泄露事件作出响应,通过 OneCRL 推送吊销信息,并发布紧急 Firefox 更新(158.0.1、ESR 115.43.1、ESR 153.5.1),同时发布 NSS 3.131.1 信任存储更新以移除受影响的根证书。