Skip to content

Commit e752542

Browse files
author
Roy Lin
committed
docs(box): record adversarial-review hardening + ReopenContainerLog sync in conformance doc
Adds a Stability & hardening section noting: the 16 confirmed adversarial-review fixes (A3S_SEC_* spoofing, pre-fork seccomp build, idempotent path-restriction mounts, path-traversal validation, panic/leak fixes), synchronous ReopenContainerLog (residual transport-ordering flake documented), and graceful-shutdown reaping that runs even on error exit.
1 parent ac7b8bc commit e752542

1 file changed

Lines changed: 15 additions & 3 deletions

File tree

docs/cri-conformance.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,23 @@ critest --runtime-endpoint unix:///tmp/a3s-box.sock \
7676
| **Capabilities** (~3) | add/drop capability, drop ALL | capabilities not managed per-container; `brctl` bridge test also needs a `CONFIG_BRIDGE` guest kernel | ⚠️ murky / possibly kernel-limited |
7777
| **MaskedPaths** (1) | mask `/bin/ls` | masking code is correct, but under the alpine/busybox substitution `/bin/ls` and `/bin/sh` are the same `busybox` binary, so masking `ls` breaks `sh`; the expected stderr needs `sh` to run | ❌ test-image artifact |
7878

79-
## Stability
79+
## Stability & hardening
8080

81-
- **Graceful shutdown:** on SIGTERM/SIGINT the CRI drains the gRPC server and
81+
- **Graceful shutdown:** on SIGTERM/SIGINT the CRI drains the gRPC server then
8282
reaps every sandbox VM (kills the shim, unmounts its overlay, removes the
83-
rootfs dir) — no more orphaned microVMs/overlays across restarts.
83+
rootfs dir) — no more orphaned microVMs/overlays across restarts. The reaper
84+
runs even if the server exited with an error.
85+
- **Adversarial review (16 confirmed findings, all fixed):** caller-supplied
86+
`A3S_SEC_*` env can no longer spoof the security envelope (privilege
87+
escalation); the seccomp BPF filter is built before `fork` (no async-signal
88+
unsafe allocation in the post-fork child — a musl malloc-deadlock risk);
89+
MaskedPaths/ReadonlyPaths mounts are idempotent (no per-exec mount-leak);
90+
MaskedPaths/ReadonlyPaths/sysctl names are path-traversal validated; misc
91+
panic/leak/non-Linux-build fixes.
92+
- **ReopenContainerLog is synchronous** (waits for the supervisor to confirm the
93+
reopen). Reduces — but does not fully eliminate — the "reopening container
94+
log" flake; the residual race is guest→host log-transport ordering and needs
95+
an exec-stream flush barrier.
8496
- **TODO:** SIGKILL/crash-case startup reaping (reconcile already marks orphaned
8597
sandboxes NotReady, but does not yet reap the dead instance's leftover shim
8698
processes + overlay mounts).

0 commit comments

Comments
 (0)