ACVE-2026-0002
Claude Code sandbox settings can permit a sandbox escape
The configuration
- Configuration label
- claude-code <999.0.0
- Affected entries
AgentHarness: claude-code — SEMVER (introduced 0; fixed 2.1.2)
- Matcher
- all
harness.ideq"claude-code"harness.versionsemverRange"<999.0.0"sandboxexists
- all
Why it is exploitable
What the vulnerability is
Claude Code sandbox settings can permit the sandbox-escape condition described by the referenced GHSA. The relevant boundary is the sandbox state at process startup: a later-created settings file is not equivalent to a file that was already present when the harness began. The current seed does not establish a fixed Claude Code release.
Which configuration is exposed
The matcher requires harness.id claude-code, a version below the sentinel <999.0.0, and a present sandbox field. It is deliberately broad because the lockfile records the effective sandbox setting but not the complete startup history. The finding text must therefore be read as requiring confirmation that the relevant settings.json startup-state condition occurred.
How ACVE detects it
ACVE reads harness.id, harness.version, and the existence of sandbox. ACVE cannot see whether settings.json existed at start, whether the sandbox value was enabled or restrictive, what command escaped, or whether an escape was reproduced. The finding is a possible configuration match, not proof of the startup-state prerequisite.
Fix
- Verify that the sandbox settings file is present and correct before starting Claude Code.
- Use the most restrictive supported sandbox configuration and do not treat a post-start settings change as evidence that startup was safe.
- Run grounding before selecting an upgrade target, then upgrade to the confirmed fixed release.
Grounding needed
acve advisory ground must confirm the affected Claude Code range, fixed release, and the startup-state condition required by GHSA-ff64-7w26-62rf.
The broad match is intentional because startup timing is not represented in the lock schema.
References
See references for primary sources.
Underlying CVEs / aliases
Detect
npx @pickbitsai/acve audit
For CI, emit SARIF with npx @pickbitsai/acve audit --format sarif --out acve.sarif --apply and upload it with GitHub code scanning.
Fix
Verify sandbox settings before startup and upgrade to the confirmed fixed release.
| Action | Target | To | Why |
|---|---|---|---|
| upgrade | harness:claude-code | 2.1.2 | Vendor fix confirmed via OSV. |
| reconfigure | settings:claude-code:sandbox | verified-before-start | Confirm settings are present before starting the harness. |
Validation
| Who | Date | Method | Evidence |
|---|---|---|---|
| Mark Pickering (PickBits) via Claude Code session 01YR6ri2tM3jU9vdQNe9R5pw | 2026-09-20 | vendor-advisory | https://github.com/anthropics/claude-code/security/advisories/GHSA-ff64-7w26-62rf |
Grounding
- OSV: found; aliases: CVE-2026-25725, GHSA-ff64-7w26-62rf; checked-at 2026-09-20T02:43:27Z
- NVD: not found; checked-at 2026-09-20T02:43:27Z
- KEV: not listed in KEV; checked-at 2026-09-20T02:43:27Z