User Story
As an operator using the OpenShell VM driver on Apple Silicon,
I need landlock.compatibility: hard_requirement to be enforceable in the packaged guest,
so that VM-backed sandboxes can fail closed with mandatory filesystem isolation.
Problem Statement
OpenShell v0.0.116 successfully boots VM sandboxes on Apple Silicon, but the packaged guest kernel does not expose a usable Landlock ABI. A direct landlock_create_ruleset(..., LANDLOCK_CREATE_RULESET_VERSION) query returns ENOSYS. Sandbox creation with landlock.compatibility: hard_requirement fails with Landlock Filesystem Sandbox Unavailable, including when every listed filesystem-policy path is verified to exist.
The current rolling vm-runtime-darwin-aarch64.tar.zst is byte-for-byte identical to the artifact embedded in v0.0.116, so the rolling runtime reproduces the same behavior.
Impact / Why This Matters
Operators who require fail-closed filesystem containment cannot qualify or use the VM backend on Apple Silicon. The only OpenShell compatibility alternative is best_effort, which may continue without Landlock when the ABI is unavailable. Security-sensitive workloads must therefore remain on another backend or maintain a custom VM runtime. This blocks adoption of the stronger VM boundary for workloads that require mandatory filesystem enforcement.
Acceptance Criteria
Reproduction Steps
-
Install OpenShell v0.0.116 on Apple Silicon and start a VM-driver gateway.
-
Create a diagnostic sandbox and confirm the guest reports Linux 6.12.76 aarch64.
-
Query the Landlock ABI in the guest:
import ctypes, errno
libc = ctypes.CDLL(None, use_errno=True)
result = libc.syscall(444, None, 0, 1)
error = ctypes.get_errno()
print(result, error, errno.errorcode.get(error))
Observed: -1 38 ENOSYS.
-
Create a sandbox with landlock.compatibility: hard_requirement and only paths confirmed to exist in the guest.
-
Observe provisioning fail with Landlock Filesystem Sandbox Unavailable.
Environment
- OpenShell: 0.0.116
- Host: Apple Silicon, macOS 26.3.1, arm64
- Driver: openshell-driver-vm 0.0.116
- Guest: Linux 6.12.76 aarch64
- VM runtime SHA-256:
04349e6395c60e8cda059cc74e24105fdd23cec49ceac84966ce7377396e757d
- VM runtime build source:
56088d0811f35d01e5af8f975335c9d0e30524be
- VM runtime GitHub run:
33026157021
- Pinned libkrunfw:
463f717bbdd916e1352a025b6fb2456e882b0b39
Logs
OCSF FINDING:CREATE [HIGH] "Landlock Filesystem Sandbox Unavailable" [type:landlock-unavailable confidence:high]
landlock_abi_result=-1 errno=38 errno_name=ENOSYS
Source inspection at the runtime build commit shows the pinned ARM64 libkrunfw base config has `# CONFIG_SECURITY is not set` and a `CONFIG_LSM` value without `landlock`. OpenShell's fragment requests `CONFIG_SECURITY_LANDLOCK=y` but does not enable `CONFIG_SECURITY` or add `landlock` to `CONFIG_LSM`. The build verification loop checks only `CONFIG_BRIDGE`, `CONFIG_NETFILTER`, and `CONFIG_NF_NAT`, so `olddefconfig` can discard the Landlock request without failing the build.
Related issue #2587 contains the same Landlock warning in VM logs but concerns an independent SSH relay disconnect.
User Story
As an operator using the OpenShell VM driver on Apple Silicon,
I need
landlock.compatibility: hard_requirementto be enforceable in the packaged guest,so that VM-backed sandboxes can fail closed with mandatory filesystem isolation.
Problem Statement
OpenShell v0.0.116 successfully boots VM sandboxes on Apple Silicon, but the packaged guest kernel does not expose a usable Landlock ABI. A direct
landlock_create_ruleset(..., LANDLOCK_CREATE_RULESET_VERSION)query returnsENOSYS. Sandbox creation withlandlock.compatibility: hard_requirementfails withLandlock Filesystem Sandbox Unavailable, including when every listed filesystem-policy path is verified to exist.The current rolling
vm-runtime-darwin-aarch64.tar.zstis byte-for-byte identical to the artifact embedded in v0.0.116, so the rolling runtime reproduces the same behavior.Impact / Why This Matters
Operators who require fail-closed filesystem containment cannot qualify or use the VM backend on Apple Silicon. The only OpenShell compatibility alternative is
best_effort, which may continue without Landlock when the ABI is unavailable. Security-sensitive workloads must therefore remain on another backend or maintain a custom VM runtime. This blocks adoption of the stronger VM boundary for workloads that require mandatory filesystem enforcement.Acceptance Criteria
landlock.compatibility: hard_requirementand known-existing paths reaches Ready.CONFIG_SECURITY=y,CONFIG_SECURITY_LANDLOCK=y, andCONFIG_LSMcontainslandlock.Reproduction Steps
Install OpenShell v0.0.116 on Apple Silicon and start a VM-driver gateway.
Create a diagnostic sandbox and confirm the guest reports Linux 6.12.76 aarch64.
Query the Landlock ABI in the guest:
Observed:
-1 38 ENOSYS.Create a sandbox with
landlock.compatibility: hard_requirementand only paths confirmed to exist in the guest.Observe provisioning fail with
Landlock Filesystem Sandbox Unavailable.Environment
04349e6395c60e8cda059cc74e24105fdd23cec49ceac84966ce7377396e757d56088d0811f35d01e5af8f975335c9d0e30524be33026157021463f717bbdd916e1352a025b6fb2456e882b0b39Logs