Eight leaked certificate keys: patch more than your browser
A certificate authority made eight of its signing keys so badly that anyone can work them out, letting an attacker fake a secure connection to any website. Browsers were patched fast; much other software was not.
ContexteMudhra is an Indian certificate authority whose certificates chain up to roots trusted by Mozilla, Microsoft, Apple and Google.
On October 17 a researcher showed that the private keys of eight eMudhra intermediate certificates, created in April 2025, can be recovered from the certificates themselves. The proof was a message signed with every one of them. With such a key, anyone can issue a valid-looking certificate for any domain.
Firefox and Chrome blocked the certificates the same day, Apple on October 19 and Microsoft on October 20, and eMudhra has revoked them. No certificates from these intermediates appear in the public logs browsers require, so browsers were probably never exposed. Nobody knows whether attackers used the keys against other clients.
Those other clients are the problem. Servers, scripts, mobile apps and containers often check certificates against a bundle shipped with the operating system, the language runtime or a library, and many never check revocation. Each of those bundles has to be updated, and every container image rebuilt.
8intermediate certificates whose private keys anyone can recover
Technical details
Fixed versions listed by the incident page: Go 1.27.3 and 1.26.10; Python certifi 2026.10.19, pip 26.2.2, uv 0.13.4; rustls-webpki 0.103.16 and webpki-roots 1.0.10; Electron 44.9.1, 43.8.1, 42.11.16; NSS 3.131.1; the curl CA bundle of 2026-10-20; Composer ca-bundle 1.4.16 and 1.6.0; Alpine ca-certificates 20261020-r0; Debian 20250419+deb13u1 and 20250419~deb12u2; Ubuntu 20260816ubuntu0.24.04.1 (and siblings); Homebrew ca-certificates 2026-09-25_1; cloudflared 2026.10.2. Pending: Node.js, Bun and FreeBSD ca_root_nss.
Test hosts: https://dv-g3b-emudhra.we-have-a-problem.com/ and https://dv-g3b-aaa-emudhra.we-have-a-problem.com/. A certificate error means the client no longer trusts the compromised intermediates; a page that loads means it still does. The affected roots are Comodo AAA Services and emSign ECC Root CA - G3.
Cloudflare's advice: update the HTTP library, runtime and OS trust store underneath your SDK, not just the SDK; rebuild images and restart services; never fix new certificate errors by turning verification off; and test through the application's real connection path, because a passing browser or curl test does not prove a background service is protected.
Why it mattersMost production traffic between services never touches a browser. Until each runtime, base image and app bundle is updated, a forged certificate from these intermediates could pass as real there.
For youRebuild the Docker images behind the SaaS backends and CI, and keep an eye on Node.js: it is the runtime the Supabase edge and Node services depend on, and its fix was still pending. Flutter apps that pin their own bundle need the same check.
- certificate authority
- An organisation trusted to vouch that a website really is who it says, by signing its certificate.
- intermediate certificates
- Certificates a certificate authority uses for day-to-day signing, themselves signed by a more carefully guarded root.
- private keys
- The secret half of a key pair; whoever holds it can sign things that others will trust.
- revocation
- Marking a certificate as no longer valid before it expires, so clients that check will reject it.
- bundle
- The list of trusted root and intermediate certificates a program uses to decide which connections are genuine.
Sources eMudhra intermediate CA compromise (incident page)Cloudflare: 8 eMudhra certificates are compromisedSimon Willison: eMudhra intermediate CA compromise