eMudhra CA weak-key compromise: 8 emSign/Sectigo intermediate CAs — forged TLS/code-signing certs for any domain (CVE-2026-111943)
Severity: critical · Patch status: partial · Since 2026-10-17 · CVE-2026-111943
eMudhra created eight intermediate CAs in April 2025 with private keys so weak (numbers below 256) that anyone can compute them in under a second, enabling forged TLS and code-signing certificates for any domain. Each intermediate has two trust paths (emSign and Sectigo roots), giving 16 certificates with 8 keys. Browsers block the intermediates via CRLSets/OneCRL, but most non-browser TLS clients (CI runners, containers, JVMs, Go binaries, Python/Rust/PHP CA bundles, Electron, macOS tools) trust the roots, don't block the intermediates and don't check revocation. Forged certificates for google.com appeared in CT logs on 19 October 2026; mitmproxy 12.3.0 can sign intercepted traffic with a recovered key; no confirmed in-the-wild use yet. Vendors have released trust-store updates, revocations and blocklists (tracked as CVE-2026-111943); Chrome removes emSign ECC Root CA - G3 on 27 October 2026.
What to do
- Replace any server certificate chaining to emSign ECC Root CA - G3 immediately
- Run probe tests in CI for each runner type (hosted, self-hosted, container) and test TLS inspection proxies
- Scan and rebuild production container images with updated OS trust stores and redeploy
- Rebuild Go binaries built with affected versions (Go 1.27.3/1.26.10 fixed); upgrade JDKs or add blocked.certs entries and restart; upgrade Node.js and restart
- Upgrade certifi, webpki-roots, rustls-webpki and composer/ca-bundle in lockfiles; fix macOS laptops and Windows code-signing verification
- Search TLS/proxy logs for the compromised intermediates and decide whether to rotate credentials
Fixed versions
- Go 1.27.3 / 1.26.10
- Node.js fixes released 2026-10-21
- NSS 3.131.1
Sources
All live incidents on Threat Watch