User Story
I use OpenShell v0.1.2 on Fedora 44 Silverblue for coding agents in rootless Podman containers and microVMs. I want agents to test project apps with Chromium inside the guest, keeping Chromium's own sandbox and OpenShell's filesystem/network confinement enabled.
Problem Statement
Chromium cannot establish its namespace sandbox under the current workload restrictions. In disposable OpenShell guests, unshare -Ur fails with Operation not permitted in both runtimes. Sandbox-enabled browser startup also failed; the microVM diagnostic was summarized as "No usable sandbox" in our investigation notes, but that browser stderr was not retained as a raw log.
The v0.1.2 source blocks CLONE_NEWUSER through clone/unshare. The child-hardening filter additionally denies unshare, namespace-bearing clone, setns, chroot, and credential-changing operations. These are deliberate hardening rules; this report requests a supported compatibility path, not blanket removal of those protections.
Impact / Why This Matters
Guest browser testing is blocked unless users disable browser sandbox protections or introduce a separate browser boundary with additional state management and network enforcement. We want to preserve defense in depth and keep browser traffic governed by OpenShell.
Acceptance Criteria
Reproduction Steps
In an existing OpenShell v0.1.2 sandbox with util-linux already present:
openshell --gateway podman sandbox exec --name <sandbox-name> -- unshare -Ur true
openshell --gateway vm sandbox exec --name <sandbox-name> -- unshare -Ur true
Both return unshare: unshare failed: Operation not permitted. These probes demonstrate the namespace restriction, not a complete browser reproduction. Our browser image has pinned Playwright CLI 0.1.22 and its matching Chromium, with chromiumSandbox:true. Launching sandbox-enabled Chromium in either OpenShell runtime failed; a separate network-disabled rootless Podman test of the same image succeeded with Chromium's namespace and seccomp protections enabled.
Environment
- OpenShell: v0.1.2
- Host: Fedora 44 Silverblue, Linux x86_64
- OpenShell runtimes tested: rootless Podman and microVM
- Guest image: Ubuntu 24.04-based; Playwright CLI 0.1.22; Chromium revision 1247
Logs
Saved test output excerpts, 2026-10-01 (host paths and unrelated tool output omitted):
Runtime: podman
Session: osh-browser-6a97d3
Created sandbox: osh-browser-6a97d3
{"browser":{"browserName":"chromium","launchOptions":{"executablePath":"/opt/playwright-browsers/chromium-1247/chrome-linux64/chrome","chromiumSandbox":true,"args":["--disable-dev-shm-usage"]}}}
unshare: unshare failed: Operation not permitted
Runtime: vm
Session: osh-browser-14ed04
Created sandbox: osh-browser-14ed04
{"browser":{"browserName":"chromium","launchOptions":{"executablePath":"/opt/playwright-browsers/chromium-1247/chrome-linux64/chrome","chromiumSandbox":true,"args":["--disable-dev-shm-usage"]}}}
unshare: unshare failed: Operation not permitted
Related Issues
#4097 covers the separate seccomp(SECCOMP_SET_MODE_FILTER) restriction. This is not a blanket ban on additional filters: our investigation recorded successful stacking through prctl(PR_SET_SECCOMP).
#1039 covers desktop/browser harnesses broadly and was closed as completed. We could not find a closing implementation reference demonstrating this particular guest Chromium workflow. #982 concerns outer Kubernetes user namespaces and explicitly retains the nested CLONE_NEWUSER block; it does not resolve this case.
User Story
I use OpenShell v0.1.2 on Fedora 44 Silverblue for coding agents in rootless Podman containers and microVMs. I want agents to test project apps with Chromium inside the guest, keeping Chromium's own sandbox and OpenShell's filesystem/network confinement enabled.
Problem Statement
Chromium cannot establish its namespace sandbox under the current workload restrictions. In disposable OpenShell guests,
unshare -Urfails withOperation not permittedin both runtimes. Sandbox-enabled browser startup also failed; the microVM diagnostic was summarized as "No usable sandbox" in our investigation notes, but that browser stderr was not retained as a raw log.The v0.1.2 source blocks
CLONE_NEWUSERthroughclone/unshare. The child-hardening filter additionally deniesunshare, namespace-bearingclone,setns,chroot, and credential-changing operations. These are deliberate hardening rules; this report requests a supported compatibility path, not blanket removal of those protections.Impact / Why This Matters
Guest browser testing is blocked unless users disable browser sandbox protections or introduce a separate browser boundary with additional state management and network enforcement. We want to preserve defense in depth and keep browser traffic governed by OpenShell.
Acceptance Criteria
chrome://sandbox.no_new_privsremain enforced.--no-sandbox.Reproduction Steps
In an existing OpenShell v0.1.2 sandbox with util-linux already present:
Both return
unshare: unshare failed: Operation not permitted. These probes demonstrate the namespace restriction, not a complete browser reproduction. Our browser image has pinned Playwright CLI 0.1.22 and its matching Chromium, withchromiumSandbox:true. Launching sandbox-enabled Chromium in either OpenShell runtime failed; a separate network-disabled rootless Podman test of the same image succeeded with Chromium's namespace and seccomp protections enabled.Environment
Logs
Saved test output excerpts, 2026-10-01 (host paths and unrelated tool output omitted):
Related Issues
#4097 covers the separate
seccomp(SECCOMP_SET_MODE_FILTER)restriction. This is not a blanket ban on additional filters: our investigation recorded successful stacking throughprctl(PR_SET_SECCOMP).#1039 covers desktop/browser harnesses broadly and was closed as completed. We could not find a closing implementation reference demonstrating this particular guest Chromium workflow. #982 concerns outer Kubernetes user namespaces and explicitly retains the nested
CLONE_NEWUSERblock; it does not resolve this case.