id: PIR-2026-0020title: Buggy permission-modifying commands in Claude Code's auto-update path destabilize and in worst cases "brick" root-installed systemsdate_occurred: late February 2025 (first public report, GitHub issue #168, opened 2025-02-27)date_detected: 2025-02-27 (user GitHub issues)date_disclosed: 2025-03-06 (TechCrunch report; Anthropic confirms and ships fix)status: corroborated - details corrected from candidate intake, see Verification notesagent_description: Anthropic's Claude Code CLI coding agent. The failure is in its auto-update tooling, not in model reasoning - no model autonomy involved. In scope as a harness failure of an agentic product (the class failure_locus exists for).operator_type: individual (affected users) / enterprise (Anthropic ships the harness)autonomy_level: n/a at the failure point (deterministic update tooling)model_stack: n/a (bug independent of the model)harness: Claude Code CLI auto-updater, running with whatever privileges the install had - root/superuser in the affected casesauthority_scope: code execution on the host with inherited install privileges; at root, effectively unlimited filesystem authorityfunds_at_risk_usd: unknown (recovery labor; no data loss reported)blast_radius: one machine (per victim; multiple victims reported, total unquantified)root_cause: tool-error - primary. Contributing: operator-error (root/superuser installs widened the blast radius)failure_locus: harnessmechanism: Claude Code's auto-update flow contained buggy commands that modified access permissions on critical system files. Where the CLI ran with root/superuser permissions, these changes hit restricted system directories, leaving workstations unstable or unbootable-in-effect. In the primary-source worst case (issue #168), the update path produced sudo chown -R $USER:$(id -gn) /usr && sudo chmod -R u+w /usr - handing /usr to a non-root user and breaking sudo itself; the user needed an attached rescue instance to repair permissions. Anthropic removed the offending commands and added a troubleshooting-guide link in the program.adversary_present: noexploitation_status: in-wild-malfunction (real users' machines, no adversary; v0.2 token per the gap flagged in PIR-2026-0033)severity: degraded (workstations broken, recoverable with expert effort; no permanent data loss reported)direct_loss_usd: unknown (recovery labor across an unquantified number of machines)indirect_loss_usd: unknowndowntime: per-victim: hours to days of workstation recoverydata_exposure: nonedetected_by: operator (affected users filing GitHub issues)time_to_detect: immediate per machine (sudo/system breakage is loud)time_to_recover: per-victim manual permission repair (worst case via rescue instance); vendor fix shipped within ~1 week of the first public issueremediation: offending commands removed from the auto-updater; troubleshooting guide linked in-productstructural_fix: none beyond command removal publicly documented; the root-install exposure pattern was left to user configurationcontrols_that_worked: none in the product; cloud-VM rescue tooling (outside the product) enabled worst-case recoverytelemetry_grade: operator-logs (user-side reports with command transcripts; vendor confirmed to press)sources:Independence: adequate - victim report and vendor confirmation are separate parties.
- confidence: high on mechanism and fix (primary issue + vendor confirmation); low on scale (affected-machine count never quantified)