The Checkbox Said Patched: CVE-2026-65400 and the Headless Mac Agent Host
A consent system built to stop malware forced an always-on remote-control daemon, and the patch policy everyone trusted never installed the fix.
The bug is the last link in the chain
Ben Thompson's write-up of his own compromised Mac mini traces how the host got exposed. TCC (Transparency, Consent, and Control) is the macOS per-app permission system. It draws consent prompts in a protected GUI layer that no software can read. That is the correct design, because a prompt software can see is a prompt malware can approve. His box was headless and ran only Claude and Codex. When agent-written programs touched a gated resource such as an SMB share, Desktop or Downloads, the call failed silently. Clearing it required a human looking at the screen.
So Thompson left Screen Sharing on permanently and clicked prompts from his phone, prompts he had long since stopped reading. Enabling Screen Sharing opens port 5900 in the macOS firewall. A control built to stop malware ended up requiring an always-on remote-control daemon, and that daemon was the entry point. Routers usually block 5900 inbound, but that depends on the network the host sits on, not on anything the host enforces.
The compliance dashboard may be measuring intent
Thompson had "Install… security updates automatically" checked for years. He found it does not install point releases, which is where CVE fixes almost always ship. This bug was fixed in a point release that existed mainly for that purpose. That behavior is the author's finding, not an Apple statement, so test it against the OS versions in the fleet. If it holds, an MDM report built on that checkbox records what admins intended, not what is installed. The signal to trust is the OS build number compared against the fixed release for Tahoe, Sequoia and Sonoma.
The highest-risk group is iOS build farms. Teams leave Screen Sharing on there because remote GUI access is how they clear Xcode, simulator and TCC dialogs, which reproduces the Screen Sharing dependency that exposed Thompson's host. A VPN in front of 5900 limits who can reach the bug. It does not remove it, because the flaw needs no credentials. Patching is the only fix.
What the agent got right
Detection was close to accidental. Claude Code's persistent monitor stops every 30 minutes, and a scheduled restart surfaced an URGENT alert. Claude noticed the account could now run admin commands without a password. It stopped executing commands on its own and told Thompson to stop using it. He used it anyway to remove the malware and pin down a four-second intrusion window, then wiped the machine.
Once an attacker holds root, every binary, config and tool output on that host can be controlled by the attacker. Forensics run from inside it prove nothing.
Claude's advice was textbook incident response, and the wipe is what actually made him safe. The blast radius matters too. With passwordless admin, every agent running as that user effectively ran as root. Thompson calls the box being a low-value, agent-only host his saving grace.
Mac or Linux for agent hosts
| Dimension | Headless macOS | Linux server |
|---|---|---|
| Permission prompts | GUI-only TCC; silent failures | Scriptable users, groups, sudo |
| Remote access default | Screen Sharing opens 5900 | SSH; GUI optional |
| Patch enforcement | Needs MDM deadlines, per the author | Distro security channels |
| Unique strength | Xcode, accessibility-API computer use | None of the Apple toolchain |
Thompson had already bought a Linux server and says he will never rack a Mac again. The split I would use: keep Macs for work that needs the Apple toolchain or Mac GUI automation, and move other headless agent jobs off them.
What to do
Inventory every Mac (dev laptops, CI runners, colo Mac minis) by OS build today and update each to the point release fixing CVE-2026-65400. Treat any unpatched host that had 5900 reachable as compromised: check for miners, sudoers changes and new LaunchDaemons.
Scan your external IP space for TCP 5900 this week. Move remote GUI access behind Tailscale or WireGuard with admin-only ACLs, and enforce point-release updates through MDM deadlines with alerts on build drift.
Move headless agent workloads that don't need Xcode or Mac GUI automation onto Linux this quarter. On the Macs that remain, run an agent-independent watchdog that diffs sudoers, LaunchDaemons, sustained high-CPU processes and new listening sockets, and ships results off-host.