Fix Linux sandbox masking for root-owned canonical executables #256
Labels
No labels
burndown-2026-06
sunday-sprint
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/umbra#256
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Reproduction
On Linux with Ward v0.798 and cli-guard v0.103.0, a
ward execverb whose entry command ismakefails before the child starts:The same audited verb succeeds with
CLIGUARD_NO_SANDBOX=1.Cause
installToolShimcallstouch(tool.canonical)beforemaskWithShim. For an existing root-owned/usr/bin/make,touchrequires write access and returnsEACCES, even though the existing path is already a valid bind-mount target.Expected
The Linux sandbox should mask an existing canonical executable without requiring the invoking user to write to that executable. A regression test should cover a non-symlink executable in a root-owned directory.
Acceptance
ward execcan jail a verb backed by a root-owned canonical executable.Confirmed again on kai-server with Ward v0.866.0 and a Bash-backed infrastructure verb: sandbox: ensure canonical entry bash: open /usr/bin/bash: permission denied. The child script never started. Infrastructure is using a narrow direct-executable declaration for the new retention verb (infrastructure#721) so incident relief can proceed without CLIGUARD_NO_SANDBOX. The underlying root-owned canonical executable bug remains here and affects existing Bash-backed Ward verbs.