PKI / BROWSER SECURITY

Eight eMudhra Intermediate CA Keys Were Computable From Public Certificates

Browsers Blocked Them in Hours, Everything Else Needs Patches. A flawed April 2025 key ceremony left eight eMudhra emSign intermediate CA certificates with private keys anyone could derive from the public certificates.

Matt Lucas  |  October 22, 2026  |  5 min
Editorial hero illustration
CVEs in this postCVE-2026-111943CVE-2026-113470Live detections →All RedEye CVEs →
8
Intermediate CA keys exposed
100 min
Report to Chrome CRLSet block
0
CT-logged TLS certs before block
18 months
Weak keys in root stores
TL;DR
  • What: The private keys for eight eMudhra emSign intermediate CA certificates were generated with too little randomness, so anyone could compute them from the public certificates.
  • Impact: Anyone holding the keys could issue TLS certificates for any website, or code-signing certificates, that clients chaining to emSign ECC Root CA - G3 or the Sectigo cross-signs would accept.
  • Fix / mitigation: Chrome, Firefox, Apple, Microsoft and Android pushed blocks between October 17 and 20, and Go 1.27.3 and 1.26.10 (CVE-2026-111943), Firefox 158.0.1 (CVE-2026-113470), NSS 3.131.1, certifi 2026.10.19 and webpki-roots 1.0.10 remove or reject the affected trust.
  • Who's at risk: Organizations running Go binaries, Python services on certifi, Rust services on webpki-roots, Apple devices trusting Sectigo AAA Certificate Services, and any client that does not check revocation.

Eight intermediate certificate authority keys belonging to eMudhra, the Indian CA that sells certificates under the emSign brand, are compromised. Mozilla and the Chrome Root Program confirmed it on October 20, 2026. The keys were not stolen. They were generated with so little randomness that anyone can compute them from the public certificates. Mozilla did exactly that within two hours of receiving the report, and researchers have since published all eight keys.

An intermediate CA signs the certificates that websites and software publishers present. Whoever holds one of these keys could issue a certificate for any domain that a client trusting the chain would accept. Six of the eight were TLS intermediates covering DV, OV and EV issuance. Two were code-signing intermediates. The weak keys have sat in public root stores since the April 2025 ceremony that created them, roughly 18 months. Whether anyone exploited them in that window is not known.

What Was Compromised

eMudhra said on October 21 that a flaw in its April 2025 key ceremony produced a second, weak set of keys alongside the intended ones, and that the weak set is what was published to browser root stores. The affected certificates, issued through eMudhra BV in the Netherlands and eMudhra Inc in the United States, are:

The six TLS intermediates were issued by emSign Root TLS CA - G3 and chain to emSign ECC Root CA - G3, which sits in the Chrome and Apple root stores and sat in Mozilla's until October 20. Each of the eight also exists as a second certificate carrying the same public key, cross-signed by Sectigo under its AAA Certificate Services root, according to a list published by Mozilla cryptography engineer Dennis Jackson.

How Fast the Browsers Moved

The researcher, credited by Mozilla only as Wayne, proved possession by signing the message "We have a problem here - Wayne" with each of the eight keys and sending it to the root programs on October 17. The response timeline:

CRLSets and OneCRL are fetched by the browsers on their own schedule, so users needed no update or restart. Chrome's block matches the public key rather than the certificate, which also catches the Sectigo cross-signed copies. Chrome did not need to block the two code-signing intermediates because its TLS verifier will not build a path through an intermediate restricted to code signing. eMudhra has since revoked all eight.

Certificate Transparency limited the browser exposure

No TLS certificate chaining to the six web intermediates had been logged to Certificate Transparency before Chrome's block. Chrome and other browsers that require CT logging would not have trusted a forged certificate by default. Both Chrome and Firefox also stopped trusting Sectigo AAA Certificate Services for websites in April 2025, so the cross-signs did not widen browser risk.

Where the Exposure Remains

The CT protection and the pushed revocation lists cover browsers. They do not cover most of the software that runs inside an enterprise. Go binaries, Python applications using the certifi bundle, and many other TLS clients do not check revocation data and do not enforce CT. They keep trusting a chain until their code or their root bundle changes. A forged certificate never logged to CT would be accepted by those clients without complaint.

Apple is a second gap. Its root list for iOS 26 and macOS 26, published in December 2025, still includes Sectigo AAA Certificate Services, the root behind the cross-signed copies. Apple's October 19 block addresses the eight certificates, but it depends on devices receiving that update.

The two code-signing intermediates also fall outside the browser story entirely. A signing certificate issued from either key would carry an eMudhra chain into any platform that trusts it for code signing, and the browser CRLSet and OneCRL mechanisms do nothing for that path.

Rebuilds, not just updates

Go embeds its fix in the standard library. Services compiled with earlier Go versions keep the old behavior until they are rebuilt with Go 1.27.3 or 1.26.10. Updating the toolchain on a build host does not protect binaries already deployed.

Vendor Fixes Released So Far

Mozilla's guidance for trust store operators is tiered: no action is needed where clients reliably check revocation and fail closed; where software can block individual intermediates, block the eight now; otherwise consider removing trust in the roots that signed them. Published fixes:

Go handled its fix on the URGENT track, which its security policy reserves for threats to ecosystem integrity or flaws exploited in the wild. Neither the Go issue nor the release notes say which condition applied. The eight hash values in Go's code match the eight eMudhra certificates.

RedEye Assessment

This is a key generation failure, not an intrusion, and that makes it worse in one respect: there is no attacker dwell time to bound. The keys were derivable by anyone from the day the certificates were published. Mozilla says it does not currently believe other CAs are affected, and Chrome says it checked every other CA certificate in its store and "found no other instances of this failure mode."

The browser response was fast and effective. The residual risk sits in server-side and embedded TLS clients that rely on static root bundles, in unrebuilt Go services, in Apple devices that trust the Sectigo cross-sign root, and in code-signing trust. Those are the places a forged certificate from these keys would still work, and they are the inventory most organizations know least about. RedEye can assess where your environment depends on static trust stores and which deployed services still carry the affected roots.

Questions about your exposure?

RedEye Security provides assessments for organizations that need to understand their real risk.

Talk to us