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

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.
- uv (GHSA-hq85-5cpj-mr62): versions before 0.13.4 bundle the
emSign ECC Root CA - G3root. Fixed inuv 0.13.4, released 2026-10-20. - certifi (GHSA-6q48-6c7w-9gw2): versions before 2026.10.18 bundle the same root. Upgrade to
certifi>=2026.10.18. One commenter recommendscertifi 2026.10.19. - Other fixes named by a commenter: Go 1.27.3 or 1.26.10;
rustls-webpki 0.103.16;webpki-roots/webpki-root-certs 1.0.10; Electron 44.9.1, 43.8.1 or 42.11.16.
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.

Quick bits
- TypeScript 7.1 Beta is out. Ambient module declarations can now match on import attributes, so one
declare module "*" with { type: "text" }covers every text import. Source phase imports land too. Your pile of*.mddeclarations can finally retire. Try it withnpm install -D typescript@beta. - Google Cloud now offers OpenAI models. GPT-6 Astra, GPT-6.1 Sol and GPT-6 Luna are rolling out in private preview to select enterprise customers in model garden, billed on your Google Cloud invoice. Strange bedfellows, one invoice.
- PHP shipped emergency fixes for two critical RCEs (CVE-2026-109618, CVE-2026-109619). They are exploitable without authentication on any PHP install that serves web requests, and the risk is highest with mod_php. Upgrade to PHP 8.5.12, 8.4.27, 8.3.36 or 8.2.35. On 8.1 or older, ask your vendor. (discussion)
- GitHub's package firewall is in public preview. It sits between Actions runners or coding agents and the registry, and applies cooldown periods and GitHub Advisory Database checks. It supports npm only, it is for GitHub Enterprise Cloud only, and it is free until GA.
- DeepSeek open-sourced DeepInfer, the inference framework behind its production service, under Apache 2.0. It runs DeepSeek-V4.1-Flash on NVIDIA SM100 GPUs and Huawei Ascend 950 NPUs, and the KV cache system is not included. It reached 2268 points on HN. (discussion)
- Josh Comeau previews CSS for Interop 2027. Mozilla built a ranking so developers can upvote features for next year's Interop. Josh goes through the 10 he voted for, starting with
@functionandcorner-shape. Vote early, vote squircle. - TorchTPU is now open source. Google's native PyTorch backend for TPUs was co-developed with Meta. In Transformers v5 you just pass
device_map="tpu". AWS also launched TorchNeuron, a native PyTorch backend for Trainium, in public beta. (discussion) - WebSockets in Vercel Functions are generally available. The Vercel CDN has served 300 million connections since the beta began in late June. They cost the same as other Function invocations, and Active CPU pricing bills only the time spent processing messages.
Build this

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
- EG Secure Solutions SiteGuard Server Edition: CVE-2026-106931; the entry lists no fixed version, check with the vendor.
- Plex Media Server: CVE-2026-96656, CVE-2026-96655, CVE-2026-96654, CVE-2026-96652; the entries list no fixed version, check with the vendor.
- Siemens Software Center: CVE-2026-110936; the entry lists no fixed version, check with the vendor.
Somewhere a trust store from 2019 is still in production. Today is a good day to find it.