CA Key Compromise and Distrust Response
A certificate authority sells one thing: trust in a signing key. When that key escapes — stolen from an HSM, leaked by an insider, or, in the October 2026 eMudhra case, never strong to begin with — anyone holding it can mint a certificate for any website, and TLS authentication collapses for every client that still trusts the issuing chain. The ecosystem’s answer is a layered distrust response: hash-targeted blocklists pushed inside browsers, revocation lists, root removal from trust stores for software that receives no blocklists, and Certificate Transparency as the audit net that bounds the damage. The eMudhra incident is the fullest worked example to date: eight intermediate CA keys that anyone could factor by hand, blocked in Chrome 1 hour 40 minutes after the first report.
The eMudhra incident (October 2026)
On Saturday, October 17, 2026, a community researcher (“Wayne”) reported to the Chrome Root Program at 18:05 UTC and to Mozilla at 20:06 UTC that the private keys of eight eMudhra intermediate certificates were compromised: six TLS-issuing intermediates (DV/OV/EV, two per legal entity — eMudhra BV in the Netherlands and eMudhra Inc in the US) and two code-signing intermediates. The TLS intermediates chain to emSign Root TLS CA - G3 and on to emSign ECC Root CA - G3; all eight were also cross-signed by Sectigo under its AAA Certificate Services root. eMudhra sells certificates under the emSign brand and has roots in the Mozilla, Chrome, and Microsoft stores. 12
The keys were weak at birth. eMudhra’s own account: the eight issuing CAs were created in a Key Generation Ceremony on April 30, 2025, using FIPS 140-2 Level 3 HSMs (Ultimaco hardware per the incident bug), and a flaw in a wrap/unwrap step produced a second set of weak keys alongside the original strong keys — the weak keys, not the strong ones, were published to the browser root stores. The CAs passed independent audits in 2025 and 2026 and sat in browser trust lists from mid-2025. 34
The weakness made the compromise uncontainable. As Ian Carroll put it on the dev-security-policy thread, the keys “are inherently weak single-byte keys that anyone can factor”: one factor of each modulus is below 256, and the moduli break with a few trial divisions on a desk calculator. The factors circulated publicly within hours of disclosure. No theft was necessary and none can be undone by rotating hardware, which is why the thread treats the incident as worse than an exfiltrated key. 5
| When (UTC) | Event |
|---|---|
| 2025-04-30 | Key generation ceremony produces the weak keys; they are the ones published to root stores |
| 2026-10-17 18:05 | Chrome Root Program receives the researcher report |
| 2026-10-17 19:45 | Chrome lands a CRLSet update blocking the SPKI hashes of all six TLS intermediates (1 h 40 min) |
| 2026-10-17 20:06 | Mozilla receives the report (forwarded via Chrome) |
| 2026-10-17 22:59 | OneCRL distribution complete to all standard-configuration Firefox users (under 3 hours) |
| 2026-10-18 | eMudhra revokes all eight certificates |
| 2026-10-19 | Sectigo revokes its cross-signed copies; Apple platforms block the keys; distros advisory sent to trust-store operators |
| 2026-10-20 | Microsoft platforms block; Mozilla ships NSS 3.131.1 root removal and Firefox 158.0.1/ESR releases; Chrome announces Chrome Root Store v43 root removal; bug 2083449 de-restricted |
| 2026-10-21 | eMudhra publishes its statement to the Indian exchanges |
The distrust-response machinery
Hash-targeted blocklists. Chrome’s CRLSet and Mozilla’s OneCRL (introduced 2015) push distrust updates without a browser restart. Chrome blocks by SPKI hash rather than certificate identity, so the Sectigo cross-certificates — same keys, different certificates — were covered by the same update, and the two code-signing intermediates needed no TLS block at all: Chrome’s path building refuses to route a TLS path through an intermediate constrained to the Code Signing Extended Key Usage. 9
Certificate Transparency as the damage bound. Chrome enforces CT for certificates under roots in the Chrome Root Store, and no certificate chaining to the six TLS intermediates was logged to CT before the block, so no fraudulent certificate from them could have been trusted by default in Chrome or any other CT-enforcing browser. Chrome also worked with CT log operators to reject the compromised chains going forward. 10
Root removal for the downstream. Both Mozilla (NSS 3.131.1) and Chrome (Root Store v43) removed the upstream eMudhra root that signed the intermediates. Firefox itself did not need the change — OneCRL already covered it — but applications consuming Mozilla’s or Chrome’s trust store without consuming the blocklists do. The cost falls on legitimate servers still chaining through other intermediates under those roots, which fail to validate for store-updated clients until they re-chain. 1112
Revocation as the baseline. eMudhra revoked all eight certificates on October 18 and Sectigo revoked the cross-signs on October 19, which is sufficient only for clients that check revocation reliably and fail closed when they cannot. Mozilla’s advisory to trust-store operators is built around this gap: block the intermediates if you have a mechanism for it, otherwise consider removing the roots, and expect abuse of the keys “in the near future.” 13
The distrust also travels through application runtimes that ship their own trust stores: Node.js’s 21 October 2026 security release included a ca-cert dependency update for the eMudhra Intermediate CA compromise across its 26.x, 24.x, and 22.x lines, moving the blocklist into the server-side ecosystem one package update at a time. 14
Where the guarantees stop
Mozilla’s distros advisory states the residual risks plainly. CT logs show no issuance from the compromised intermediates, but that does not rule out past unlogged certificates trusted by clients that do not enforce CT, nor future logged certificates trusted by clients that do not enforce revocation. Clients with custom trust stores — servers, libraries, appliances — remain exposed until each one ships an update, and root removal protects them only at the price of breaking legitimate chains through the same roots. The incident response moved in hours; the tail of the fix is measured in software update cycles. 15
Contested claims and open questions
eMudhra states its infrastructure was not compromised, no data was breached, and all physical and logical controls remained intact — true as far as it goes, but the thread’s counterpoint is that the keys were factorable by anyone and the issue “cannot be contained,” so nothing needed to be breached. eMudhra also says the eight intermediates never issued end-entity certificates and that its Indian DSC/eSign businesses (separate infrastructure, ~1% of revenue in the affected global TLS line) are unaffected. 1617
Root cause remains open: eMudhra is “working to establish the root cause” of the wrap/unwrap flaw, and the thread floats an alternative mechanism (an HSM integration library operating on a “reference” faux private key) without resolution. The certification angle is also unresolved in public: FIPS 140-2 Level 3 hardware was in use and did not prevent weak output, and Peter Gutmann’s standing point — that FIPS 140 rates a module’s documented boundary, not its security — went unrebutted. 1819
Chrome Root Program is evaluating the status of eMudhra’s remaining CA certificate against its inclusion standards; Mozilla states it does not believe other CAs are affected, and Chrome found no other instance of this failure mode across its root store. Whether the discovery was AI-assisted, as eMudhra’s statement suggests, is unconfirmed; the community’s account is plain factorization of a small factor.
Related concepts
- ca-misissuance-mass-revocation — the compliance-failure sibling: mis-issued certificates, no stolen keys, same revocation machinery on a BR 4.9.1.1 clock
- weak-entropy-key-generation — the same defect class one layer down: keys broken at birth, output-side tests none the wiser, retroactive exposure for every past use
- certificate-path-building — trust anchors are where certification paths terminate; removing a root changes which paths build, which is why root removal has availability costs
- nist-curve-seed-origins — the provenance question in reverse: twenty-five years of suspicion about one CA-adjacent standard’s parameters, resolved by showing the generation process was auditable
- key-transparency — the alternative posture: assume keys will be wrong or subverted, and make their provenance publicly checkable
Sources
- Dennis Jackson, Chrome Root Program team, and list participants 2026 — Compromised eMudhra Intermediate Certificates (Mozilla dev-security-policy thread) — Dennis Jackson, Chrome Root Program team, and list participants, “Compromised eMudhra Intermediate Certificates” (Mozilla dev-security-policy thread), October 20, 2026
- Mozilla 2026 — Protecting Firefox users following the compromise of eMudhra intermediate certificates — Mozilla, “Protecting Firefox users following the compromise of eMudhra intermediate certificates,” October 20, 2026
- eMudhra Limited 2026 — eMudhra Statement on distrust of select Global TLS Intermediate and one Root CA — eMudhra Limited, “eMudhra Statement on distrust of select Global TLS Intermediate and one Root CA,” October 21, 2026
- Dennis Jackson (Mozilla) 2026 — eMudhra Intermediates Compromise — Dennis Jackson (Mozilla), “eMudhra Intermediates Compromise - Action Required” (distros advisory via oss-sec), October 19–20, 2026
- Node.js Project — Wednesday, October 21, 2026 Security Releases — Node.js Project, “Wednesday, October 21, 2026 Security Releases,” October 21, 2026
Footnotes
-
Dennis Jackson (Mozilla) 2026 — eMudhra Intermediates Compromise ↩
-
Dennis Jackson, Chrome Root Program team, and list participants 2026 — Compromised eMudhra Intermediate Certificates (Mozilla dev-security-policy thread) ↩
-
eMudhra Limited 2026 — eMudhra Statement on distrust of select Global TLS Intermediate and one Root CA ↩
-
Dennis Jackson, Chrome Root Program team, and list participants 2026 — Compromised eMudhra Intermediate Certificates (Mozilla dev-security-policy thread) ↩
-
Dennis Jackson, Chrome Root Program team, and list participants 2026 — Compromised eMudhra Intermediate Certificates (Mozilla dev-security-policy thread) ↩
-
Dennis Jackson, Chrome Root Program team, and list participants 2026 — Compromised eMudhra Intermediate Certificates (Mozilla dev-security-policy thread) ↩
-
Mozilla 2026 — Protecting Firefox users following the compromise of eMudhra intermediate certificates ↩
-
eMudhra Limited 2026 — eMudhra Statement on distrust of select Global TLS Intermediate and one Root CA ↩
-
Dennis Jackson, Chrome Root Program team, and list participants 2026 — Compromised eMudhra Intermediate Certificates (Mozilla dev-security-policy thread) ↩
-
Dennis Jackson, Chrome Root Program team, and list participants 2026 — Compromised eMudhra Intermediate Certificates (Mozilla dev-security-policy thread) ↩
-
Mozilla 2026 — Protecting Firefox users following the compromise of eMudhra intermediate certificates ↩
-
Dennis Jackson (Mozilla) 2026 — eMudhra Intermediates Compromise ↩
-
Dennis Jackson (Mozilla) 2026 — eMudhra Intermediates Compromise ↩
-
Node.js Project — Wednesday, October 21, 2026 Security Releases ↩
-
Dennis Jackson (Mozilla) 2026 — eMudhra Intermediates Compromise ↩
-
eMudhra Limited 2026 — eMudhra Statement on distrust of select Global TLS Intermediate and one Root CA ↩
-
Dennis Jackson, Chrome Root Program team, and list participants 2026 — Compromised eMudhra Intermediate Certificates (Mozilla dev-security-policy thread) ↩
-
eMudhra Limited 2026 — eMudhra Statement on distrust of select Global TLS Intermediate and one Root CA ↩
-
Dennis Jackson, Chrome Root Program team, and list participants 2026 — Compromised eMudhra Intermediate Certificates (Mozilla dev-security-policy thread) ↩