feat(executor): per-profile opt-in for unprivileged user namespaces
This commit is contained in:
@@ -272,9 +272,15 @@ Kandev passes each agent definition's CPU and memory limits to Docker. These are
|
||||
|
||||
</details>
|
||||
|
||||
### User namespace support
|
||||
|
||||
Profiles can enable **User namespace support** under the Dockerfile build card. When enabled, the container is launched with a tailored seccomp profile that relaxes namespace-related syscall restrictions, plus `apparmor=unconfined`. This allows agent runtimes that sandbox file edits via user namespaces (e.g., Codex's `apply_patch` → bwrap) to work inside the container.
|
||||
|
||||
The setting is **off by default**, only available on Docker profiles, and affects **newly created containers only**. Existing task environments must be reset for the change to take effect. See the [security ADR](../decisions/2026-08-18-executor-userns-security-options.md) for details on the exact syscall changes and security model.
|
||||
|
||||
### Credentials and security
|
||||
|
||||
> **Trust boundary:** A container is useful but not a hostile-code sandbox. The daemon has host-level power, bind mounts expose sources, agents can use injected secrets, and the default image has outbound network access. Kandev does not mount the Docker socket automatically.
|
||||
> **Trust boundary:** A container is useful but not a hostile-code sandbox. The daemon has host-level power, bind mounts expose sources, agents can use injected secrets, and the default image has outbound network access. Kandev does not mount the Docker socket automatically. The User namespace support option relaxes container isolation. See the [security ADR](../decisions/2026-08-18-executor-userns-security-options.md).
|
||||
|
||||
<details>
|
||||
<summary>Docker credential and security details</summary>
|
||||
|
||||
Reference in New Issue
Block a user