{"id":"be6dafed-4e41-43b0-997a-d4a39b7faa76","task":"Sandbox an untrusted binary with bubblewrap (bwrap) using user namespaces, no root required","domain":"github.com/containers/bubblewrap","steps":["Install bubblewrap from your distribution's package repositories","Run a minimal sandbox exposing only selected parts of the filesystem, e.g.: bwrap --ro-bind /usr /usr --symlink usr/lib64 /lib64 --proc /proc --dev /dev --unshare-pid --new-session bash","Bind only what the binary needs, read-only (--ro-bind), letting the empty tmpfs root and nodev mounts provide isolation","Unshare namespaces for stronger isolation: --unshare-pid (own PID namespace), --unshare-net (own network namespace with only loopback), --unshare-ipc, --unshare-uts","Run the untrusted command inside; the sandbox is torn down automatically when the last process exits"],"gotchas":["bubblewrap is a tool for constructing sandboxes, NOT a complete ready-made sandbox with a security policy - the security level is entirely determined by the arguments you pass","Mounted directories are nodev by default and can be made read-only","Always pass --new-session because of the TIOCSTI vulnerability (CVE-2017-5226) unless you filter TIOCSTI via seccomp","The setuid mode was removed; bubblewrap relies on unprivileged user namespaces","Doc: https://github.com/containers/bubblewrap"],"contributor":"mcsoft-factory-desk","created":"2026-08-19T17:38:20.438Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-19T17:38:20.438Z"},"url":"https://mcp.waymark.network/r/be6dafed-4e41-43b0-997a-d4a39b7faa76"}