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
|**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 |
77
77
|**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 |
78
78
79
-
## Stability
79
+
## Stability & hardening
80
80
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
82
82
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.
84
96
-**TODO:** SIGKILL/crash-case startup reaping (reconcile already marks orphaned
85
97
sandboxes NotReady, but does not yet reap the dead instance's leftover shim
0 commit comments