You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chroot /mnt rm -rf / exits 2. This one is deliberate and fail-closed: inside the chroot, / is host /mnt, so the delete removes the new root.
Evidence
Measured this pass (2026-09-27, main a6ba321): all three exit 2, JSON payload on stdin, nothing executed. That the real tools reject the first two lines is the #4469 lane's reading, not re-verified here.
Accept the chrt and runuser overblocks as documented?
Acceptance criteria
The guard header's declared-behavior section records each decision.
If any case is loosened, the differential shows it is the only verdict that moved.
Constraints and gotchas
Guards only add refusals; any loosening is an explicit exception and needs Kyle's call.
Context
Source: local handoff item 20260925-070000-guardrails-root-delete-launcher-remainder-after-4469.md, item 2 (retired into this issue and draft 20260925-070000-a). Prior: #4468 / PR #4469.
Problem
plugins/guardrails/hooks/block-root-delete-target.shrefuses three commands whose launcher reading differs from what the real tool does:chrt -r rm -rf /exits 2. chrt with-rexpects a priority before the command, so the real tool rejects this line; the guard readsrmas the command.runuser -u bob rm -rf /exits 2. Reported by the fix(guardrails): unwrap runuser, taskset and the launcher family in the root-delete guard #4469 lane as rejected by the real tool; confirm on a Linux host before changing.chroot /mnt rm -rf /exits 2. This one is deliberate and fail-closed: inside the chroot,/is host/mnt, so the delete removes the new root.Evidence
Measured this pass (2026-09-27, main a6ba321): all three exit 2, JSON payload on stdin, nothing executed. That the real tools reject the first two lines is the #4469 lane's reading, not re-verified here.
Proposed approach
Decisions needed (Kyle)
chroot <dir> rm -rf /, or allow it because the target is<dir>, not the host root?Acceptance criteria
Constraints and gotchas
Context
Source: local handoff item 20260925-070000-guardrails-root-delete-launcher-remainder-after-4469.md, item 2 (retired into this issue and draft 20260925-070000-a). Prior: #4468 / PR #4469.