What happened. On Saturday, Oct 17, a community member Mozilla credits only as “Wayne” sent the browser root programs a message signed with each of eight eMudhra intermediate CA private keys, which proved they held them. Chrome’s root program got the report at 18:05 UTC and had a CRLSet block live for the six TLS intermediates by 19:45 UTC. Mozilla got it at 20:06 UTC and finished pushing a OneCRL block to Firefox users with standard settings by 22:59 UTC. Neither fix needed a browser restart. eMudhra revoked the eight certificates on Oct 18 and Sectigo revoked its cross-signed copies on Oct 19. Mozilla, Go and the oss-security list went public on Oct 20.
What leaked. The DV, OV and EV TLS intermediates (G3B, issued to eMudhra BV in the Netherlands, and G3C, issued to eMudhra Inc in the US) plus two OV code-signing intermediates. The TLS ones chain to emSign Root TLS CA - G3 and emSign ECC Root CA - G3. Each one also has a Sectigo cross-sign under AAA Certificate Services with the same public key. How the keys left eMudhra, when, and whether anyone besides the researcher holds them are all Undisclosed. Mozilla says no certificate from these intermediates shows up in Certificate Transparency logs so far, but warns that this “does not rule out the past creation of unlogged certificates” and that “abuse of the compromised private keys is likely in the near future.”
Who’s covered. Chrome and Firefox users, because those browsers pull revocation on their own and Chrome blocks by public key, which catches the cross-signs too. Apple blocked the keys on Oct 19 and Microsoft on Oct 20, per the incident page from Mozilla’s Dennis Jackson. Fixes published on Oct 20 include Go 1.27.3 and 1.26.10 (CVE-2026-111943, a hard-coded reject of the eight keys that only applies once you rebuild), Firefox 158.0.1 with ESR 115.43.1 and 153.5.1, and NSS 3.131.1, which removes emSign ECC Root CA - G3. Python’s certifi 2026.10.19 and Rust’s webpki-roots 1.0.10 dropped the same root. A Node.js fix was still pending as of Oct 20, per The Hacker News. Chrome plans to pull the root in Root Store version 43 and is reviewing eMudhra’s other root, emSign Root CA - G1.
Why a security team should care. Browsers aren’t the gap here. Server-side code is. Most Go services, Python clients, Java and Node apps and minimal container images never check revocation, so they keep trusting a chain until their CA bundle or their code changes. Anyone who can sit in the middle of that traffic with a cert from one of these keys could read or alter API calls, webhooks and update checks. The code-signing pair matters too: a binary signed through them would look legitimately signed to tools that don’t check revocation. There’s also a side effect for buyers. Removing the root cuts off legitimate eMudhra customer certificates, and Mozilla says some servers will stop working for non-Firefox clients until they switch chains.
What we’d check. Rebuild Go services on 1.27.3 or 1.26.10. Bump certifi in Python images and refresh ca-certificates in your base images. Add the eight SPKI hashes from the oss-security post to TLS inspection and egress proxy deny lists. Search your proxy and EDR telemetry for chains or signed binaries that pass through EM DV, OV or EV TLS CA - G3B/G3C or EM OV CS CA - G3B/G3C. And list any partners or SaaS endpoints that serve emSign certificates, before a root removal breaks the connection without warning.
