CVE-2026-25725: Claude Code has Sandbox Escape via Persistent Configuration Injection in settings.json
Claude Code's bubblewrap sandboxing mechanism failed to properly protect the .claude/settings.json configuration file when it did not exist at startup.
What it is
Claude Code's bubblewrap sandboxing mechanism failed to properly protect the .claude/settings.json configuration file when it did not exist at startup. While the parent directory was mounted as writable and .claude/settings.local.json was explicitly protected with read-only constraints, settings.json was not protected if it was missing. This allowed malicious code running inside the sandbox to create this file and inject persistent hooks (such as SessionStart commands) that would execute with host privileges when Claude Code was restarted.
Users on standard Claude Code auto-update received this fix automatically. Users performing manual updates are advised to update to the latest version.
Claude Code thanks hackerone.com/edbr for reporting this issue!
How to check
- Affected: @anthropic-ai/claude-code (npm) < 2.1.2.
- Compare your installed version with the range above (command below).
How to fix
- Upgrade @anthropic-ai/claude-code to 2.1.2 or later.
npm ls @anthropic-ai/claude-code -g # or: claude --versionSources
- criticalCVE-2026-96620: Claude Agent SDK (Python) resume option lets attackers run commands
- criticalUpGuard: 16,326 Supabase databases had readable tables
- highCVE-2026-86063: Claude Code: Plugin Hash Pin Bypass Allows Bypass of Hash Pinning
- highCVE-2026-103435: Claude Code could be raced into writing files outside the project