Current macOS releases (27.0.1 / 26.7.1 / 15.8.1, all dated 28 Sep) still ship /etc/ssl/cert.pem with the two roots the leaked eMudhra intermediates chain to. Apple's block covers Safari and apps using the system's own security framework, but the built-in curl, git, python3, openssl (and perl/ruby) verify against that file. On a fully updated 26.7.1 with Apple's file, curl and git connect to the advisory's test host and openssl verifies the chain. The advisory now covers this too (Filippo Valsorda's PR #52 on we-have-a-problem.com), and they're flagging it to Apple.
Quick check on any Mac (0 = still trusts the leaked chain, 60 = refuses):
/usr/bin/curl -s -o /dev/null https://dv-g3b-emudhra.we-have-a-problem.com/; echo $?
We wrapped the advisory's awk removal in a script that's safe to push fleet-wide:
- no-op if the file is already clean
- timestamped backup, never overwritten
- checks the new file (cert count minus exactly the two removed roots) before replacing
- keeps 644, re-tests against the advisory's host, restores the original on a wrong result
- refuses to touch a damaged file
- runs as root with no prompts; exit 0 safe/fixed, 1 still exposed (rolled back), 2 couldn't tell
Heads-up: Apple's built-in pip3 (and venvs made from /usr/bin/python3) carries its own outdated roots, so it needs the advisory's PIP_CERT sitecustomize fix as well. And if you run official Node.js, update to 26.12.1 / 24.22.1 / 22.23.4 (all out 21 Oct).
Script, source and SHA-256: https://www.deimoscore.com/wardlatch/#mac
The project is open source (Apache-2.0), holds a self-certified OpenSSF Best Practices passing badge (bestpractices.dev project 15757), and releases are signed with Sigstore attestations, so you can verify what you deploy.
Disclosure: I'm one of the people behind it. Feedback welcome, especially from anyone on 27.0.1 or 15.8.1. I've only tested 26.7.1.
Update 24 Oct:
- The Mac fix script hasn't changed (same SHA-256 as on 21 Oct).
- On 27.0.1, one admin saw the script's re-test put the original file back, so nothing was changed. We're working out why in the comments below. If you're on 27, please share what you see.
- New: every Mac step on one page, including pip, which keeps its own copy of the roots: https://www.deimoscore.com/wardlatch/mac/
- Wardlatch, the free checker behind this, is now at 0.1.9. It tests each tool on a Mac separately (curl, python3, Node, certifi in your venvs, cloudflared and more), and it now also checks 9 other live incidents: PHP, GitLab, Plex, LiteLLM, the OVHcloud CLI, WordPress plugins, planted GitHub Actions workflows, keys committed to code, and headers that give away your name. Every "safe" now says what it checked. Versions before 0.1.9 could say safe without really checking, so if you ran it before, please run it again:
npx wardlatch@latest
It runs on your machine, sends no data (only test connections), and changes nothing. Release notes: https://www.deimoscore.com/newsroom/2026-10-24-wardlatch-0-1-9-every-safe-names-what-it-checked/