STUPID-2026-0090

Claude Code loaded managed config from a world-writable Windows path, enabling local privilege escalation (CVE-2026-35603)

5.4medium
April 17, 2026VerifiedReproducible
  1. Instruction given

    N/A — this is a flaw in Claude Code's own startup configuration loading on Windows, not a task given to the agent by a user.

  2. Expected behavior

    System-wide managed settings should load only from an admin-controlled, write-protected location, so an unprivileged local user cannot influence what configuration or hooks execute in another user's session.

  3. Actual behavior

    Claude Code loaded managed-settings.json from C:\ProgramData\ClaudeCode without checking directory ownership or permissions. Because ProgramData is writable by non-administrative users by default and the ClaudeCode subdirectory did not exist or was not access-restricted, any low-privileged local user could create it and drop a malicious config containing a session-start hook.

  4. Damage

    On a shared multi-user Windows machine, a standard user could plant a config that auto-ran an attacker-controlled hook under any other user's context the next time that user launched Claude Code — full local privilege escalation (CWE-426: Untrusted Search Path), rated CVSS v4.0 5.4 (Moderate). No in-the-wild exploitation was reported. Fixed in Claude Code 2.1.75, which relocated managed settings to a write-protected Program Files path; Anthropic pre-notified enterprise customers since the move changed where admins must place managed config.

Security researcher edbr (via HackerOne) reported that Claude Code on Windows loaded its system-wide `managed-settings.json` from `C:\ProgramData\ClaudeCode` without validating who owned or could write to that directory. Since `ProgramData` is writable by standard users by default, a low-privileged account on a shared machine could pre-create the `ClaudeCode` subdirectory, plant a config with a malicious session-start hook, and have it silently execute in the context of any other user who later launched Claude Code on that machine — a textbook untrusted-search-path privilege escalation (CWE-426). Anthropic assigned CVE-2026-35603, rated it Moderate (CVSS v4.0 5.4), and fixed it in version 2.1.75 by moving managed settings to a write-protected location under Program Files, giving enterprise deployments advance notice since the relocation changed where admins must place their managed config files.

Classification

Root cause
Other
Domain
Security

Related incidents

Get told when an agent breaks something

We document AI agent failures daily, severity-scored against a published scale. When one lands at 7.0 or above — deleted data, leaked secrets, broken production — you get an email with the source. When nothing does, you get nothing.

This database is callable over MCP — query it from inside your agent.