# eMudhra intermediate CA private keys compromised · pwn.watch > Eight eMudhra Global TLS intermediate CA private keys were found to be cryptographically weak / recoverable (researcher report Oct 18). Mozilla, Chrome, Apple and Microsoft blocked the intermediates; eMudhra revoked them Oct 19 and the ECC root was distrusted as a precaution. Downstream runtimes that ship their own trust stores (Go, Node.js, Electron, Python certifi, curl, etc.) needed emergency CA-bundle updates so they stop trusting the compromised chains. Page: https://pwn.watch/i/emudhra-intermediate-ca-compromise · generated 2026-10-23T20:01:44.674Z ## Status - Severity: critical · status: live · patch: partial - Product: eMudhra / emSign Global TLS intermediates; any client shipping Mozilla-style CA stores - Started: 2026-10-18 - CVEs: CVE-2026-111943, CVE-2026-91403 - Affected: Clients trusting eMudhra ECC intermediates before Oct 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 Oct 21 security releases; Python 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 - Fixed in: 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; Python certifi 2026.10.19; 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 (Python ecosystem); Ubuntu/Debian/Alpine/Fedora/Arch ca-certificates updates (see tracker); Docker Desktop 4.96.2; mitmproxy 12.3.0; LibreSSL 4.2.3 / 4.3.4 / 4.4.0 ## Follow this incident - RSS (one item per update): https://pwn.watch/i/emudhra-intermediate-ca-compromise/feed.xml - JSON Feed: https://pwn.watch/i/emudhra-intermediate-ca-compromise/feed.json - Full data (timeline, sources, posts, agentBrief): https://pwn.watch/i/emudhra-intermediate-ca-compromise.json - This file: https://pwn.watch/i/emudhra-intermediate-ca-compromise/llms.txt ## Updates (newest first) - 2026-10-23: Oracle's GraalVM team publishes a Native Image advisory: native executables capture the JDK trust store and certificate blocklist at build time, so updating the JDK does not fix existing binaries. Remove the emSign ECC Root CA - G3 and AAA Certificate Services roots from the build trust store and rebuild, or start the executable with a replacement PKCS12 trust store. (https://www.graalvm.org/uploads/native-image-advisory-oct-2026-cspu.pdf) - 2026-10-22: Tracker lists patched releases across distros, language runtimes and tools; Bun, Erlang certifi and Bottlerocket still pending. mitmproxy 12.3.0 drops eMudhra CAs. (https://emudhra.we-have-a-problem.com/) - 2026-10-22: eMudhra says a flaw in its April 30 2025 key generation ceremony produced a second set of weak keys, and those were the ones published to root stores; root cause still under investigation, replacement certs being issued to customers. (https://www.theregister.com/security/2026/10/22/certification-authority-emudhra-defends-its-laughably-weak-private-keys/5304647) - 2026-10-22: Internet Freedom Foundation says it has written to eMudhra, India’s Controller of Certifying Authorities and CERT-In asking for a fix. (https://x.com/internetfreedom/status/2113234649258615256) - 2026-10-22: eMudhra's board decides to exit the global SSL/TLS certificate business (about 1% of revenue); existing certificates stay supported until expiry or replacement, revocation and status services stay up, and its Indian DSC and eSign businesses continue. (https://www.moneycontrol.com/technology/emudhra-to-exit-global-website-security-certificate-business-after-key-generation-flaw-article-14057821.html) - 2026-10-22: Co-founder Kaushik Srinivasan blames human error and a script failure in the Apr 30 2025 key ceremony (no maker-checker controls), says the eight issuers never issued end-entity certificates and there was no breach; one US customer has about 30,000 certificates on the distrusted ECC chain, while its RSA chain stays trusted. (https://www.tribuneindia.com/news/business/emudhra-attributes-certificate-security-incident-to-human-error-co-founder-says-few-customers-directly-affected/) - 2026-10-22: Lightning Labs ships Go 1.27.3 rebuilds (including lnd v0.21.5-beta.rc1) to address CVE-2026-111943; CTO Olaoluwa Osuntokun tells lnd, btcd, tapd and litd users to install the new binaries or rebuild with Go 1.27.3, since updating Go or the OS alone does not fix already-built binaries. (https://github.com/lightningnetwork/lnd/releases) - 2026-10-22: LibreSSL releases 4.2.3, 4.3.4 and 4.4.0 with a security fix that removes the eMudhra emSign ECC Root CA - G3 from cert.pem because of the weak subordinate CA keys; uncompromised intermediates were added for interoperability. (https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.3.4-relnotes.txt) - 2026-10-21: eMudhra published statements; Node.js security release refreshed CA store. - 2026-10-21: Oracle and OpenJDK publish CVE-2026-91403 (CVSS 9.1, JSSE): Java updates distrust the eight intermediates; blocked.certs / revocation-check workaround provided. (https://openjdk.org/groups/vulnerability/advisories/2026-10-21) - 2026-10-21: India's MeitY forms a special team to probe the incident; says impact on Indian websites and apps was limited. (https://x.com/ETNOWlive/status/2112914822019137966) - 2026-10-21: Python ships expedited security releases 3.15.1, 3.14.9 and a special 3.13.17 that bundle pip 26.2.2 (certifi 2026.10.19) to drop the compromised eMudhra chain; existing venvs still need pip and uv upgraded by hand. (https://blog.python.org/2026/10/python-3151-3149-31317/) - 2026-10-20: Community tracker emudhra.we-have-a-problem.com listed patched software; Alpine/curl/certifi/Go/Electron updates rolled. - 2026-10-20: Python: certifi 2026.10.18 drops all emSign roots (GHSA-6q48-6c7w-9gw2, CVSS 7.4); 2026.10.19 restores the unaffected ones. pip 26.2.2 vendors the new certifi and uv 0.13.4 refreshes its bundled Mozilla roots (GHSA-hq85-5cpj-mr62). (https://advisories.gitlab.com/pypi/certifi/GHSA-6q48-6c7w-9gw2/) - 2026-10-20: Python Software Foundation's Seth Larson tells Python users to upgrade certifi 2026.10.19, pip 26.2.2, uv 0.13.4, sigstore 4.5.1, conda 26.9.4 and pixi 0.82.1 in every venv and rebuild container images. pip below 26.2.2 keeps trusting the bad CAs through its vendored certifi even if the OS store is fixed, so pip itself has to be upgraded. (https://discuss.python.org/t/information-for-python-users-regarding-emudhra-emsign-ca-certificate-security-incident/109576) - 2026-10-19: eMudhra revoked the eight intermediates; browsers continued emergency distrust. - 2026-10-18: Independent researcher reported weak/compromisable eMudhra intermediate keys to Apple, Google, Microsoft and Mozilla. ## Fix brief # Security brief: eMudhra intermediate CA private keys compromised Source: https://pwn.watch/i/emudhra-intermediate-ca-compromise · status: live · severity: critical · updated Oct 23, 2026, 19:54 UTC ## Patch status **PARTIALLY PATCHED: some fixes exist, but not every affected branch/product is covered. Check carefully and apply mitigations where no fix exists.** ## What it is Eight eMudhra Global TLS intermediate CA private keys were found to be cryptographically weak / recoverable (researcher report Oct 18). Mozilla, Chrome, Apple and Microsoft blocked the intermediates; eMudhra revoked them Oct 19 and the ECC root was distrusted as a precaution. Downstream runtimes that ship their own trust stores (Go, Node.js, Electron, Python certifi, curl, etc.) needed emergency CA-bundle updates so they stop trusting the compromised chains. Severity detail: Critical for trust infrastructure (impersonation of any site); Go tracks related fix as CVE-2026-111943 - Product: eMudhra / emSign Global TLS intermediates; any client shipping Mozilla-style CA stores - CVE / advisory ids: CVE-2026-111943, CVE-2026-91403 ## Affected versions - Clients trusting eMudhra ECC intermediates before Oct 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 Oct 21 security releases; Python 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 ## Check whether you're affected Run these where the product is installed or in the project that depends on it, then compare with the affected/fixed versions: ```sh node -v npm ls electron grep -n '"electron"' package.json go version pip show certifi ``` ## Fix Upgrade to one of these fixed versions (or later on the same branch): - 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 - Python certifi 2026.10.19 - 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 (Python ecosystem) - Ubuntu/Debian/Alpine/Fedora/Arch ca-certificates updates (see tracker) - Docker Desktop 4.96.2 - mitmproxy 12.3.0 - LibreSSL 4.2.3 / 4.3.4 / 4.4.0 After upgrading, re-run the checks above and redeploy/restart the affected services. ## Mitigations The data marks this as partial. Until every affected component is fixed, apply the vendor mitigations from the advisories below (restrict network exposure of the affected service, disable the vulnerable feature if the advisory allows). ## Secrets to rotate This incident involves possible credential exposure. Rotate any credentials (API keys, tokens, env vars, SSH keys) that were present on affected systems or in affected builds while vulnerable/compromised versions were installed, and review access logs. ## Latest updates - Oct 23, 2026: Oracle's GraalVM team publishes a Native Image advisory: native executables capture the JDK trust store and certificate blocklist at build time, so updating the JDK does not fix existing binaries. Remove the emSign ECC Root CA - G3 and AAA Certificate Services roots from the build trust store and rebuild, or start the executable with a replacement PKCS12 trust store. - Oct 22, 2026: Tracker lists patched releases across distros, language runtimes and tools; Bun, Erlang certifi and Bottlerocket still pending. mitmproxy 12.3.0 drops eMudhra CAs. - Oct 22, 2026: eMudhra says a flaw in its April 30 2025 key generation ceremony produced a second set of weak keys, and those were the ones published to root stores; root cause still under investigation, replacement certs being issued to customers. - Oct 22, 2026: Internet Freedom Foundation says it has written to eMudhra, India’s Controller of Certifying Authorities and CERT-In asking for a fix. - Oct 22, 2026: eMudhra's board decides to exit the global SSL/TLS certificate business (about 1% of revenue); existing certificates stay supported until expiry or replacement, revocation and status services stay up, and its Indian DSC and eSign businesses continue. - Oct 22, 2026: Co-founder Kaushik Srinivasan blames human error and a script failure in the Apr 30 2025 key ceremony (no maker-checker controls), says the eight issuers never issued end-entity certificates and there was no breach; one US customer has about 30,000 certificates on the distrusted ECC chain, while its RSA chain stays trusted. - Oct 22, 2026: Lightning Labs ships Go 1.27.3 rebuilds (including lnd v0.21.5-beta.rc1) to address CVE-2026-111943; CTO Olaoluwa Osuntokun tells lnd, btcd, tapd and litd users to install the new binaries or rebuild with Go 1.27.3, since updating Go or the OS alone does not fix already-built binaries. - Oct 22, 2026: LibreSSL releases 4.2.3, 4.3.4 and 4.4.0 with a security fix that removes the eMudhra emSign ECC Root CA - G3 from cert.pem because of the weak subordinate CA keys; uncompromised intermediates were added for interoperability. ## Advisories - [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)](https://github.com/electron/electron/security/advisories/GHSA-jr5w-w6x2-84p9) (Electron) - [eMudhra certificate compromise: GraalVM Native Image advisory](https://www.graalvm.org/uploads/native-image-advisory-oct-2026-cspu.pdf) (Oracle GraalVM) - [LibreSSL 4.3.4 release notes: eMudhra emSign ECC Root CA - G3 removed from cert.pem](https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-4.3.4-relnotes.txt) (LibreSSL) - [OpenBSD 8.0 errata 005: dbupdate utility and updated /etc/ssl/cert.pem](https://www.openbsd.org/errata80.html) (OpenBSD) - [Information for Python users regarding eMudhra / emSign CA certificate security incident](https://discuss.python.org/t/information-for-python-users-regarding-emudhra-emsign-ca-certificate-security-incident/109576) (Python Software Foundation (Seth Larson)) - [GHSA-6q48-6c7w-9gw2: certifi bundles emSign root CAs with compromised intermediate CA keys](https://advisories.gitlab.com/pypi/certifi/GHSA-6q48-6c7w-9gw2/) (GitHub Advisory Database) - [pip 26.2.2 changelog (upgrade certifi to 2026.10.19)](https://pip.pypa.io/en/stable/news/) (pypa/pip) - [uv 0.13.4 release (GHSA-hq85-5cpj-mr62)](https://github.com/astral-sh/uv/releases/tag/0.13.4) (Astral) - [eMudhra statement on certificate security incident](https://emudhra.com/en/post/certificate-security-incident) (eMudhra) - [Mozilla, Google, Apple block compromised eMudhra CA certificates](https://www.bleepingcomputer.com/news/security/mozilla-google-apple-block-compromised-emudhra-ca-certificates/) (BleepingComputer) - [OpenJDK Vulnerability Advisory: 2026/10/21 (CVE-2026-91403)](https://openjdk.org/groups/vulnerability/advisories/2026-10-21) (OpenJDK) - [Oracle Security Alert Advisory - CVE-2026-91403](https://www.oracle.com/security-alerts/alert-cve-2026-91403.html) (Oracle) - [mitmproxy 12.3.0 release (removes eMudhra CAs)](https://github.com/mitmproxy/mitmproxy/releases/tag/v12.3.0) (mitmproxy) ## Write-ups & news - [Lightning Labs Urges Immediate Updates Over Certificate Vulnerability](https://thedefiant.io/news/security/lightning-labs-urges-immediate-updates-over-certificate-vulnerability) - [eMudhra to Exit Global SSL/TLS Business After 8 Intermediate CA Keys Found Easily Guessable](https://thehackernews.com/2026/10/emudhra-to-exit-global-ssltls-business.html) - [eMudhra Intermediate CA Compromise tracker](https://emudhra.we-have-a-problem.com/) - [eMudhra certificate compromise](https://blog.cloudflare.com/emudhra-certificate-compromise/) - [Certification authority eMudhra defends its laughably weak private keys](https://www.theregister.com/security/2026/10/22/certification-authority-emudhra-defends-its-laughably-weak-private-keys/5304647) - [eMudhra to exit global website security certificate business after key-generation flaw](https://www.moneycontrol.com/technology/emudhra-to-exit-global-website-security-certificate-business-after-key-generation-flaw-article-14057821.html) ## Caveats eMudhra states intermediates never issued customer certs and infrastructure was not breached; browser root programs still distrust the ECC root. Bun still listed as pending on the community tracker as of last check — patchStatus partial. CVE-2026-111943 is the Go-side identifier reported by BleepingComputer; not every vendor assigned a CVE. Python: pip mixes its vendored certifi with the system store and can't turn certifi off, so only pip 26.2.2+ fixes pip (pypa/pip#14374); uv can use UV_SYSTEM_CERTS=true with a fixed OS store. Viral posts saying "Python is compromised" overstate it: Python itself has no bug, only its bundled CA lists. No in-the-wild misuse of the keys reported so far. --- Machine-readable: https://pwn.watch/i/emudhra-intermediate-ca-compromise.json · all incidents: https://pwn.watch/incidents.json. Verify against the vendor advisory before changing production systems.