Subscribe free
Morning Merge · Wednesday, October 21, 20264 min read

Eight eMudhra CA keys compromised, plus PHP RCEs

Update certifi and uv today, then patch PHP to 8.5.12, 8.4.27, 8.3.36 or 8.2.35.

The main thing

A bench-mounted key-duplicating machine is cutting a copy of one master key from a hook board that holds eight. Behind the bench, a long row of identical doors runs into the distance.

Your browser is probably fine. The Python job that calls an API from inside a container might not be.

Cloudflare reports that the private keys of eight eMudhra intermediate CA certificates are compromised. The keys are weak, so an attacker who has one can forge a certificate for any domain, impersonate that server, and read or change its traffic. The intermediates chain to roots that the Mozilla, Microsoft, Apple and Chrome root programs trust, and the CA has revoked them.

Browsers recovered fast. In the discussion, Mozilla's galadran says OneCRL protected Firefox users automatically within a couple of hours, and Chrome, Apple and Microsoft have similar tools. Software that ships its own trust store needs a new release. Cloudflare has shipped updates for WARP and cloudflared and says it has found no active exploitation on its services.

Cloudflare's main advice is to look beneath the SDK. Your API client may hand verification to an HTTP library, the language runtime or the OS, so an SDK update alone may change nothing. If certificate errors appear after you patch, do not fix them by turning verification off.

What to do today: Upgrade uv and certifi. Then check your dependency tree, including indirect dependencies, for anything else that bundles CAs. Mozilla's Dennis Jackson keeps a crowdsourced list of patched packages. Rebuild your images, then reload, restart or redeploy. Test through each app's real TLS path, because a passing browser or curl check tells you nothing about a background service that uses a different verifier.

8 eMudhra intermediate CA keys compromised. Every one chains to a root that Mozilla, Microsoft, Apple and Chrome trust.

Quick bits

Build this

A diagram of this evening's project

The trust-store sniffer. Write a script that finds every CA bundle on a machine or inside your container images and flags any that still contain emSign ECC Root CA - G3. Cloudflare's whole point today is that the bundle your code trusts is usually not the one you think, so go find all of them. Start with find / -name "*.pem", split each bundle into single certs and have openssl print the subjects. For extra credit, point it at a docker save tarball and give it a dramatic name.

Patch roundup

Somewhere a trust store from 2019 is still in production. Today is a good day to find it.

← All issues

Get this in your inbox every morning.

Free. Five minutes. Unsubscribe in one click.

Subscribe free →