Eight eMudhra intermediate CA keys were recoverable; fixes released
The private keys of eight eMudhra (emSign) intermediate certificate authorities were shown to be recoverable from their own public certificates on October 17, 2026, and were revoked on October 18. Go, Java, Python, Node.js, Electron, NSS and other ecosystems have shipped releases that remove trust; the Teku notice reports no exploitation so far. Update runtimes, Docker images and certificate packages.
What happened
Private keys of eight eMudhra (emSign) intermediate certificate authorities, which issue TLS certificates, were shown on October 17, 2026 to be recoverable by anyone from the public certificates. eMudhra revoked them on October 18, and browsers, operating systems and runtimes have blocked trust. Anyone not updated remains exposed, especially on Java, which does not check revocation by default.
Why it matters
With these keys, an attacker can forge certificates and intercept HTTPS connections for systems still trusting the compromised authorities, reading data and credentials in transit. In Web3Signer, an attacker who reaches the HTTP port can request signatures with the victim's keys and, on key vaults, read the keys returned, according to Consensys. No exploitation has been reported so far, according to Teku.
What to do
Update now: Java 27.0.1.0.2, 25.0.5.0.2, 21.0.13.0.2, 17.0.21.0.2, 11.0.33.0.2 or 8u511 or later; Go 1.27.3 or 1.26.10; Node.js 22.23.4, 24.22.1 or 26.12.1; Electron 44.9.1, 43.8.1 or 42.11.16; Python 3.15.2, 3.14.10, 3.13.18, 3.12.16 or 3.11.18; certifi 2026.10.19; pip 26.2.2; NSS 3.131.1. Rebuild Docker images with old Java: Web3Signer up to 26.10.1 and Teku up to 26.10.2 remain unfixed, and updating Java on the host does not fix the container.
For the technical team
- CVE
- CVE-2026-111943, CVE-2026-91403, CVE-2026-115557, CVE-2026-114820
- Affected
- eMudhra (emSign) emSign Global TLS intermediates; trust stores estilo Mozilla em Go, Electron, Node.js, Python (certifi, pip, uv), NSS e · Clients trusting eMudhra ECC intermediates before the October 17-21, 2026 browser/OS/runtime blocks; Go before 1.27.3/1.26.10; Electron before 44.9.1/43.8.1/42.11.16; Node.js before the October 21 security releases; certifi 2019.3.9 to before 2026.10.19 (GHSA-6q48-6c7w-9gw2); pip before 26.2.2 (vendored certifi); uv before 0.13.4; Web3Signer Docker images up to 26.10.1 and consensys/teku images up to 26.10.2, including -jdk25 and -jdk26 tags (Eclipse Temurin with neither fix).
- Exploitation
- No exploitation reported, according to the Teku notice. Anyone can derive the compromised keys from the public certificates; the network position is the only barrier. The eight intermediates were revoked on October 18, 2026.
- Fix
- Electron 44.9.1/43.8.1/42.11.16; Go 1.27.3/1.26.10; Node.js 22.23.4/24.22.1/26.12.1; certifi 2026.10.19; Python 3.15.2/3.14.10/3.13.18/3.12.16/3.11.18 (ssl module denylist, CVE-2026-115557); NSS 3.131.1; Java 27.0.1.0.2/25.0.5.0.2/21.0.13.0.2/17.0.21.0.2/11.0.33.0.2/8u511+ (CVE-2026-91403); Deno 2.9.8; rustls-webpki 0.103.16/webpki-roots 1.0.10; pip 26.2.2/uv 0.13.4/sigstore 4.5.1/conda 26.9.4/pixi 0.82.1; Docker Desktop 4.96.2; mitmproxy 12.3.0; LibreSSL 4.2.3/4.3.4/4.4.0; Ubuntu/Debian/Alpine/Fedora/Arch ca-certificates updates.
- Vector
- Eight eMudhra (emSign) ECC intermediate CAs: private keys recoverable from their public certificates; anyone can issue certificates chaining to them (Besu report, Web3Signer and Teku notices). Java does not check revocation by default; without the fix, an attacker only needs a position on the network path to intercept outbound HTTPS, and in Web3Signer with --tls-allow-ca-clients=true a forged client certificate grants access to the HTTP API with no interception.
- More details
- Timeline (Besu, Web3Signer, Teku): keys shown recoverable October 17, 2026; revoked October 18; browser, OS and Go blocks followed; OpenJDK blocked the compromised intermediates and their Sectigo cross-signs on October 20 (CVE-2026-91403) and removed four eMudhra and Sectigo roots on October 23 (CVE-2026-114820). CVEs listed by Besu: CVE-2026-111943, CVE-2026-91403, CVE-2026-115557, CVE-2026-114820. Mitigations without a Java update: pin the signer certificate (dedicated truststore in Teku), mutual TLS with known client certificates, keep endpoints on a private network, use local files instead of https URLs. The PSF states normal pip uses, including upgrading pip itself, are now safe on the new Python releases even if pip is not updated. Ubuntu/Debian Java uses /etc/ssl/certs/java/cacerts, which takes extra steps to update (Debian bug 1069251). Updating Java on the host does not change the Java inside Docker images.
Indicators (IoCs)
- emSign ECC Root CA - G3
- AAA Certificate Services
Timeline
Besu report maps the eMudhra CA compromise and fixes across Go, Electron, Node.js, Python, NSS and Java.
Sources 30 sources
- Incident Report 2026-10-26: eMudhra CA Compromise Besu
- Web3Signer security notice: eMudhra CA compromise Consensys (Web3Signer)
- Teku operator note on the eMudhra CA incident Teku
- Python 3.15.2, 3.14.10, 3.13.18, 3.12.16 and 3.11.18 are out Python Software Foundation (Hugo van Kemenade)
- eMudhra CA Key Compromise Explained: What Happened, Who's Affected, and What to Do Keytos
See all 30 sources
- eMudhra revoked certificates: 403 India gov sites still serve them Tensorust
- eMudhra apologises over weak crypto keys, announces expert review to address security concerns India Today
- About the compromised eMudhra intermediate CAs Apple
- Cisco Informational for Emergency Distrust of eMudhra Root and Intermediate Certificate Authorities Cisco
- CERT-In advisory CIAD-2026-0050: Compromise of eMudhra Intermediate CA Certificates CERT-In
- AWS security bulletin 2026-150-AWS: CVE-2026-111943, eMudhra intermediate CA key recovery in AWS trust bundles AWS
- GHSA-frr6-h895-5pxp: Dart/Flutter apps trust compromised eMudhra intermediates (fixed in Dart 3.13.7, Flutter 3.47.8) Dart / Flutter
- Datadog Agent 7.84.5 and 7.84.6 release notes (reject compromised eMudhra intermediate keys, including in embedded Python on Windows) Datadog
- Firefox 158.0.1 release notes (updated OneCRL block list for eMudhra intermediates) Mozilla
- Protecting Chrome and Android Users from Compromised eMudhra Intermediate CA Certificates Google Chrome Root Program
- Bug 2083449 - eMudhra: Private key compromise of Intermediate Certificates Mozilla Bugzilla
- eMudhra ignored Mozilla Root investigation deadline; blames social media Hacker News
- Electron GHSA-jr5w-w6x2-84p9 (CVE-2026-115570): Mitigation for compromised eMudhra intermediate certificates (fixed in 45.0.0-beta.6, 44.9.1, 43.8.1, 42.11.16) Electron
- eMudhra certificate compromise: GraalVM Native Image advisory Oracle GraalVM
- LibreSSL 4.3.4 release notes: eMudhra emSign ECC Root CA - G3 removed from cert.pem LibreSSL
- OpenBSD 8.0 errata 005: dbupdate utility and updated /etc/ssl/cert.pem OpenBSD
- Lightning Labs Urges Immediate Updates Over Certificate Vulnerability The Defiant
- eMudhra to Exit Global SSL/TLS Business After 8 Intermediate CA Keys Found Easily Guessable The Hacker News
- eMudhra Intermediate CA Compromise tracker Dennis Jackson / community
- Information for Python users regarding eMudhra / emSign CA certificate security incident Python Software Foundation (Seth Larson)
- GHSA-6q48-6c7w-9gw2: certifi bundles emSign root CAs with compromised intermediate CA keys GitHub Advisory Database
- pip 26.2.2 changelog (upgrade certifi to 2026.10.19) pypa/pip
- uv 0.13.4 release (GHSA-hq85-5cpj-mr62) Astral
- eMudhra statement on certificate security incident eMudhra
- Mozilla, Google, Apple block compromised eMudhra CA certificates BleepingComputer


