News Developer tools

eMudhra quits TLS after key flaw; old trust stores still at risk

Browsers already block eMudhra's eight broken CAs. Servers, scripts, containers and macOS command-line tools may still trust them until you update.

The short read

eMudhra is leaving web certificates five days after a researcher showed anyone could recover eight of its CA keys.

  • Chrome, Firefox, Apple and Microsoft block the eight CAs, but tools that skip revocation checks can still trust them until their CA bundles update.

What you can do with this

Update ca-certificates, Node.js, Java, Go, Python certifi and Docker Desktop to the fixed versions, then rebuild container images. That closes a path for forged certificates against your services.

A bearded man with glasses typing on a laptop whose screen shows lines of white text in a terminal window.
Photo: Kowalski7cc, CC0

eMudhra, an Indian certificate authority, said on October 22 that its board has decided to “voluntarily withdraw from the global SSL/TLS certificate business.” Reuters reported the exit the same day. It follows the discovery that eight of its intermediate CA keys could be recovered by anyone. Browsers already block those certificates, so the risk that remains sits in servers and containers that never got the update.

Anyone could rebuild the keys

On October 17, a researcher named Wayne signed a message with the private key of each of the eight intermediates and reported it. That is the account of the disclosure site run by Mozilla’s Dennis Jackson. The keys were generated wrongly in April 2025, so “anyone can recover them from the certificates.” Help Net Security reports each key was smaller than 256, so recovering one took at most 256 guesses.

eMudhra’s own statement blames “a flaw in the KGC” that produced weak keys alongside the strong ones.

With one of those keys, an attacker “could impersonate any website or service,” the disclosure site says. The tooling is public: mitmproxy, a widely used interception proxy, added an option to “sign certificates with a compromised eMudhra intermediate CA key.”

Browsers moved in days; everything else did not

Firefox and Chrome have blocked the certificates since October 17, Apple since October 19 and Microsoft since October 20, per the disclosure site. Chrome used CRLSets, and the Chrome Root Program wrote that Root Store version 43 will remove the eMudhra root. No Certificate Transparency log holds entries for these intermediates, the site notes. So CT-enforcing browsers “could not have been attacked.”

But many other clients check neither revocation nor CT. Revocation alone does nothing for them. They need a software update.

The disclosure site runs test servers signed by the broken intermediates and publishes how many clients still connect. We read that file at 14:37 UTC on October 22.

In the 71 minutes since its counter started at 13:26 UTC, it logged 50,866 successful connections from clients that still trusted the chains. The largest groups were iOS WebViews (9,882), curl 8 (8,323), Safari on iOS (7,036 across versions 26 and 27) and the Zabbix monitoring agent (2,273). These count connections rather than devices, from people who chose to run the test. Still, they show that a vendor block does not reach every client at once.

eMudhra’s account, and what stays

eMudhra says it revoked the CAs within 14 hours of discovery, that no customer certificates were issued from them and that its infrastructure was not breached. It puts global SSL/TLS at about 1% of revenue and calls the scrutiny “out of proportion.”

Its G1 RSA roots keep serving customers during the transition. It will replace affected certificates at no cost. Reuters reports the shares fell 40% over two days.

What to do now

  • Update trust bundles. Fixed versions on the disclosure site include Ubuntu 24.04 ca-certificates 20260816ubuntu0.24.04.1 and Debian 13 20250419+deb13u1. For runtimes, Node.js 22.23.4 or 24.22.1, Java 21.0.13.0.2 or 17.0.21.0.2, and Go 1.27.3 or 1.26.10. For tools, Python certifi 2026.10.19, pip 26.2.2 and Docker Desktop 4.96.2.
  • Rebuild images. A container keeps the bundle it was built with. Cloudflare’s advice is to update and redeploy, and not to “resolve these errors by disabling verification.”
  • Check macOS scripts. On macOS, the built-in curl, git and python3 read /etc/ssl/cert.pem without checking revocation, and that file has not been updated, per the disclosure site. It gives a command to remove the two affected roots.
  • Test your real path. Run curl https://dv-g3b-emudhra.we-have-a-problem.com/ from the machine that matters. A certificate error is the good result.

The trade-off: the site warns that removing roots by hand is “NOT recommended for ordinary users.” Its commands also drop AAA Certificate Services, the root Sectigo used to cross-sign the eight. Where a vendor update exists, take that instead.

Sources