← AUTOMATER NEWSROOM

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.

Diagram showing four root programs at the top connected to a red compromised eMudhra intermediate layer, which fans out to five downstream trust-store categories color-coded by whether fixes have shipped or operator action is required.Diagram showing four root programs at the top connected to a red compromised eMudhra intermediate layer, which fans out to five downstream trust-store categories color-coded by whether fixes have shipped or operator action is required.
The eight compromised eMudhra intermediates chain to Mozilla, Microsoft, Apple and Chrome roots; downstream trust stores are color-coded by fix status, based on Cloudflare's disclosure and Simon Willison's tracking post.

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.

Cloudflare Blog post titled 8 eMudhra certificates are compromised. Here is what you need to know.
Cloudflare Blog's disclosure of the eMudhra intermediate CA certificate compromise, headlined '8 eMudhra certificates are compromised. Here's what you need to know', as rendered on the publisher's page. · Original source

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

Two-panel runbook diagram: a stack showing SDK, HTTP library, runtime and OS or bundled trust store on the left, beside five numbered fleet patching steps and a red warning never to disable certificate verification on the right.Two-panel runbook diagram: a stack showing SDK, HTTP library, runtime and OS or bundled trust store on the left, beside five numbered fleet patching steps and a red warning never to disable certificate verification on the right.
Certificate verification can be delegated several layers below an SDK, so fleet patching must reach the trust store and be validated through the application's actual TLS path, per Cloudflare's developer guidance.

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:

  1. 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.
  2. Update the bundles. Apply the released fixes (certifi, pip, uv, distro ca-certificates, vendor clients) and check the crowdsourced package list for your stack.
  3. 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.
  4. Restart and redeploy. Long-running processes keep old trust lists in memory until reloaded.
  5. Validate through the actual path. Exercise the application’s real TLS route, not just a browser or a curl one-liner.
  6. 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.

Sources

  1. 8 eMudhra certificates are compromised. Here's what you need to know | Cloudflare Blog
  2. eMudhra Intermediate CA Compromise
  3. Cloudflare Blog
  4. Archive for Tuesday, 20th October 2026