Eight eMudhra Intermediate CA Keys Compromised: A Trust-Store Patching Runbook for Agent Fleets
Compromised eMudhra intermediate keys put every bundled CA list at risk. Cloudflare shipped mitigations and client updates; here is how to patch Python toolchains, containers and agent fleets, then verify the real TLS path.
The private keys of eight eMudhra intermediate CA certificates are compromised, and the blast radius reaches every piece of software that bundles its own list of trusted CAs: container base images, Linux ca-certificates packages, Python’s certifi, agent sandboxes, and any fleet that calls model or tool APIs over TLS. Because the keys themselves are weak, an attacker can create a forged certificate for any domain and use it to impersonate servers, intercepting or modifying traffic.
Cloudflare’s disclosure says it became aware of the compromise on October 19, 2026, at approximately 17:00 UTC, and immediately prioritized patching critical services ahead of public disclosure. The affected intermediates chain to roots trusted by the Mozilla, Microsoft, Apple and Chrome root programs, and Simon Willison wrote that the compromise is “very, very bad news”; any software that bundles a list of trusted certificates, he added, needs to be updated. Cloudflare said its security review has not identified active exploitation on its services, and it stressed that this is a certificate-authentication failure, not a weakness in TLS encryption algorithms.

Why this is an agent-fleet story, not just a browser story
Browsers got off relatively easy. As Cloudflare notes, browser maintainers could remediate “with a flip of a switch” using quick-revocation mechanisms like Chrome’s CRLSets, because they have just one application to update. Everything else has to be patched stack by stack, and that long tail is exactly where coding agents live: a CLI agent calling an LLM API, an MCP connector reaching an HTTPS tool server, a CI runner cloning over HTTPS. Each depends on some certificate verifier, and the verifier is often buried several layers beneath the SDK.
The ecosystem tracking is moving fast. Willison’s October 20 archive entry points to a public GitHub repository tracking software updates, and the Cloudflare post — currently atop the company’s blog — references a crowdsourced list of patched packages maintained by Mozilla’s Dennis Jackson, plus a companion test site with browser and non-browser checks.
Two cautions from that guidance deserve operator attention. First, test results apply only to the verification path being tested: a green browser check does not prove a background service is protected, and neither does a curl test if the application uses a different verifier. Second, once you patch, new certificate errors may surface in dashboards; Cloudflare explicitly warns against resolving them by disabling verification, which would remove the authentication protection the updates restore.
What Cloudflare shipped
Cloudflare updated shared trust stores and base images, reloaded and redeployed services, and separately assessed applications with bundled or custom trust stores. It also published concrete customer actions:
| Software or service | Action Cloudflare recommends |
|---|---|
| Cloudflare One / WARP clients | Upgrade to v2.5.7 (Android), v1.12.7 (iOS), 2026.8.2115.0 (Windows, macOS, Linux) |
| 1.1.1.1 app | Upgrade to v6.38.11 (Android), v6.31.8 (iOS), 2026.8.2115.0 (desktop platforms) |
| Cloudflare Tunnel (cloudflared) | Upgrade to 2026.10.2; for containers, update and redeploy the fixed image |
| Mutual TLS client authentication | Review and update uploaded CAs used to verify client certificates |
| Origins on Full (strict) or Strict mode | Review custom origin certificates and server configuration |
| Cloudflare Containers and Sandboxes | Review image trust stores; HTTPS egress interception moves validation to Cloudflare-managed infrastructure |
The published response timeline:
| When (UTC) | Event |
|---|---|
| Oct 19, ~17:00 | Cloudflare becomes aware of the compromise and begins assessment |
| Oct 20, 02:00 | Cloudflare One Client and WARP app updates published (iOS Cloudflare One Agent pending app review) |
| Oct 20, 09:15 | cloudflared security update published |
| Oct 20, 19:20 | CDN and server-side Zero Trust mitigations fully deployed |
If you run Zero Trust with Gateway and an up-to-date client, Cloudflare says you are automatically protected.
Python and toolchain fixes
Willison flags three releases that carry upgraded certificate lists: uv 0.13.4, pip 26.2.2 and certifi 2026.10.19. Linux distros need updated ca-certificates packages.
# Python: refresh the bundled CA list
python -m pip install --upgrade "pip==26.2.2" "certifi==2026.10.19"
# uv 0.13.4 carries updated certificate lists; standalone installs can self-update
uv self update
# Show where certifi's bundle lives (not proof of what every process loads)
python -c "import certifi; print(certifi.where())"
Treat certifi as a hint, not a finish line: it is often an indirect dependency, so walk the dependency tree of every agent harness and service. Then rebuild affected images and confirm whether applications require a reload, restart or redeployment — patching a trust store on disk does nothing for a process that already loaded the old list.
A patching runbook for agent fleets
Cloudflare’s developer guidance boils down to three words: look beneath the SDK. An API client may delegate certificate verification to an HTTP library, a language runtime, the operating system or a custom trust configuration, and updating the SDK alone may not change the underlying policy. Concretely:
- Inventory verification paths. List every process that makes outbound TLS calls: coding agents, MCP servers, CI runners, container fleets, background daemons. Note which verifier each one uses.
- Update the bundles. Apply the released fixes (certifi, pip, uv, distro
ca-certificates, vendor clients) and check the crowdsourced package list for your stack. - Rebuild pinned images. Base images pin trust stores at build time. If you use Cloudflare Containers or Sandboxes, review image trust stores and dependencies; enabling HTTPS egress interception routes outbound validation through Cloudflare’s already-mitigated infrastructure.
- Restart and redeploy. Long-running processes keep old trust lists in memory until reloaded.
- Validate through the actual path. Exercise the application’s real TLS route, not just a browser or a
curlone-liner. - Don’t forget mTLS and origins. If you verify client certificates or run strict origin modes, review uploaded CAs and custom origin certificates before breakage finds you.
The discipline rhymes with our coverage of the OpenCode breach: the incident belongs to the vendor, but the residual risk lives in your configuration. It also overlaps the git HTTPS authentication playbook — a stale CA bundle in an agent’s clone path produces the same stalled CI as a bad token — and the broader lesson of agent environment setup: the environment is two-thirds of the failure.
Bottom line. Browsers fixed this with a switch. Fleets fix it with an inventory: know every path that validates a certificate, push updated trust lists down each one, and prove the fix through the path the agent actually uses — without ever silencing a certificate error by turning verification off.