
Codex, Claude Code, Cursor and Docker sandbox escapes: the four fix versions to check this week, and what OpenAI's statement leaves out
Eight days. That is how long OpenAI took to close two holes in the Codex sandbox after Accomplish AI reported them on 12 August, and it is the number OpenAI's statement to BleepingComputer on 21 September is built to make you remember. Read the statement again for what it leaves out. It does not name a version. It does not say whether the tool that opened the second hole is still switched on by default. It does not say whether anyone was hit.
The version numbers come from the researcher, not the vendor. Here they are, with the other escapes the same researcher published in the same fortnight. A Pakistani software house is running at least one of these on a laptop that also holds a client's SSH keys.
| Agent | Escape | Reported | Fixed in | Writeup |
|---|---|---|---|---|
| Claude Code (macOS) | Beltdown, via core.fsmonitor | 13 July | 2.1.223 partial (6 Aug); 2.1.247 full (26 Aug) | 11 Sept |
| Cursor CLI (macOS) | Beltdown2, same class | not dated in the post | 2026.08.04-aaa8809 | 12 Sept |
| Codex CLI | Overpatch, via apply_patch | 12 Aug | 0.149.0 | 15 Sept |
| Codex Desktop (macOS) | Heapjack, via node_repl | 12 Aug | build 26.818.21641 | 15 Sept |
| Docker Desktop / Sandboxes (macOS, Docker VMM on) | CVE-2026-77179, virtio-fs | not dated in the post | 4.88.0 / 0.42.0 | 19 Sept |
Dates and versions as printed by Accomplish AI and BleepingComputer; the vendors have confirmed the fixes but published no advisories of their own that I could find.
What the four have in common
Every one starts the same way: you clone somebody else's repository and open it in the agent. No prompt. Nothing on screen. In three of the four cases the agent never ran a shell command at all.
Two of them are a git setting. A repository's own .git/config can name a program under core.fsmonitor, and git runs it whenever it looks at the working tree. Claude Code and Cursor both ran their own housekeeping git commands outside the sandbox that wrapped the agent's shell, so the repository's program ran outside it too. Anthropic's fix blanks the setting on every git call the harness makes. Cursor's fix is four environment variables on every git spawn, and Accomplish calls it the right approach because there is no call site left to forget:
GIT_CONFIG_COUNT=4
GIT_CONFIG_KEY_0=safe.bareRepository GIT_CONFIG_VALUE_0=explicit
GIT_CONFIG_KEY_1=core.fsmonitor GIT_CONFIG_VALUE_1=false
GIT_CONFIG_KEY_2=core.hooksPath GIT_CONFIG_VALUE_2=/dev/null
GIT_CONFIG_KEY_3=core.attributesFile GIT_CONFIG_VALUE_3=/dev/null
Those four lines are the one thing in this story a shop can copy today, into any CI job that runs git against code it did not write.
The Codex pair are different mechanisms with the same shape. Overpatch: the patch tool worked out its own write permissions from the paths in the patch, so a line naming /tmp widened the grant to the whole disk. Heapjack: the JavaScript tool Codex Desktop installs keeps trusted and untrusted code in one Node process, and the secret that tells them apart was a string in the shared heap; the untrusted side snapshotted the heap and read it. Accomplish's line for both, quoted by BleepingComputer:
"The thing doing the enforcement was sitting inside the thing being enforced."
Heapjack ran in read-only mode, the strictest Codex has. The tool that opened it, node_repl, is written into ~/.codex/config.toml at install with no opt-in and, at the time of the writeup, no setting to turn it off. OpenAI's statement says the issue was addressed. It does not say the default changed.
What a Pakistani software house does with this before Friday
The 21 September post said a prompt is not a network boundary. This is the same lesson one layer down. The sandbox is not a boundary either while the thing enforcing it runs inside it. The difference is that this time every item has a version number, and the check takes ten minutes:
claude --versionat or above 2.1.247.codex --versionat or above 0.149.0. Codex Desktop build 26.818.21641 or later. Cursor CLI 2026.08.04 or later. Docker Desktop 4.88.0 if Docker VMM is on in Settings, and it will be on for everyone at the end of October when it becomes the default.- A client's repository, a contractor's repository, a repository from a job board: opened in a throwaway VM or a container with no Docker socket mounted, on a machine that holds no production credentials. Read-only mode is not a substitute. Heapjack ran in read-only mode.
- The four
GIT_CONFIGlines above into every CI job that clones third-party code. - The 18 September egress rule still applies inside the VM: placeholder credentials in the guest, a proxy on the host the agent cannot reach.
One caveat the press skipped. Accomplish sells a VM-isolated agent runner, and each post ends by saying so. The findings are vendor-confirmed; the framing is a vendor's. Three of the four escapes are macOS-specific; Overpatch is in the open-source Codex CLI and runs anywhere.
Disclosure is the other datum. OpenAI fixed in eight days and said so. Anthropic took 44 days and two releases. Cursor shipped the fix and said nothing public. Docker assigned a CVE. None of the four told customers which version to check before a researcher's blog did.
My read, and it is a prediction rather than a fact: one researcher has published one escape a week for four weeks, and the class of bug (enforcement inside the enforced) is a design habit, not a typo. I expect a fifth harness's fix version to be published by Accomplish or a comparable lab before 31 October, and I expect it to be a git-spawn or a shared-process bug again. If nothing lands by then, the class was shallower than it looks and the four fixes above were the end of it.
Until then, the rule for the policy document is one sentence. A cloned repository is a program you run.
Sources
- Escaping the OpenAI Codex sandbox, twice, Oren Yomtov, Accomplish AI, 15 September 2026.
- Beltdown: Escaping the Claude Code sandbox, Oren Yomtov, Accomplish AI, 11 September 2026.
- Beltdown2: Escaping the Cursor CLI sandbox, Oren Yomtov, Accomplish AI, 12 September 2026.
- Guest to host: escaping Docker's hypervisor, Oren Yomtov, Accomplish AI, 19 September 2026.
- Researchers escape OpenAI Codex sandbox to run commands on host, Ax Sharma, BleepingComputer, 20 September 2026, updated 21 September with OpenAI's statement.
- 4 AI Coding Agents Escaped Their Sandboxes. Google Didn't Patch One, Skill MD, YouTube.
- 4 AI Coding Agents Escaped Their Sandbox Without Breaking It, Krypteia Security, YouTube.
- I Let Claude Code Run Wild. Docker Sandbox Controlled What It Could Access, Shark Numbers, YouTube.
- The agent sandbox is not a sandbox, Inference Wire, YouTube.
- The Week of Sandbox Escapes: How AI Tricks Host Tools into Self-Attacks, SCIENCE CONSCIOUSNESS, YouTube.
- Earlier on this site: Google Gemini hacked three companies (21 September) and OpenAI misalignment reports and the egress rule (18 September).