diff --git a/docs/plans/DEFERRED.md b/docs/plans/DEFERRED.md index 56701d2ff..c56e3389b 100644 --- a/docs/plans/DEFERRED.md +++ b/docs/plans/DEFERRED.md @@ -300,6 +300,21 @@ at every gate. Started 2026-09-12 during the control board MVP. After the build, refuse if the base digest changed. Add a test with a fake Docker that has no base tag. Kept out of row 197 r6 by Sage (sage-1883). Mos asked for this record in mos-1162. (2026-10-21) +- **Case 1 acceptance script: root parses with the node it's checking, and the header says less than root does.** + (Duckworth N1-N3 on the row 195 manifest, REVIEW-m1 6afcee2a5.) + N1: F9 runs `$ROOT$NODE` as root (`scripts/case1-accept.sh:298`) + before F10 checks that `--node` is the `/opt/mosaic-stack/node-` + path (:303-304). On a host installed as designed, `case2-unit.sh:128-133` + refused a non-root-owned `--node` and the args file is root's, so no + escalation path exists today. Run F9's parse through `AS_USER`, or + apply F10's path check first. N2: the header (:10) and the TOOLS.md + entry say root only reads, but root also runs `curl` (F2), `sudo -l` + (P1, P3), the jarvis probe (P9), `hostcheck.sh --check` and + `systemctl`. Doc-only. N3: F6's prefix match (:261) accepts a + `--claude` with `..` after `claude-/`. That claude runs only as + `mosaic`, and F10 uses equality. Darkwing has a follow-up on + `darkwing/row195-n1` 1e3c4767c, not yet run; it gets its own row now + that 195 has landed (b65014647), Duckworth reviews. (2026-10-21) ## Queue