bug(vm-driver): packaged macOS ARM64 runtime lacks usable Landlock ABI
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- linux, macos
- Bereich
- build-system, infrastructure, operating-systems, security
Rechercherichtung
Beginne beim VM-runtime-Build-Source-Commit 56088d0811f35d01e5af8f975335c9d0e30524be und prüfe die angepinnte libkrunfw-Basiskonfiguration, das Kernel-Fragment und die im Report beschriebene Build-Verifizierungs-Schleife. Führe die Apple Silicon-Diagnose und die hard_requirement-Smoke-Tests aus, einschließlich des Zugriffs auf deklarierte und nicht deklarierte Pfade. Erledigt ist es, wenn ABI-Version 1 oder höher, erfolgreiches Ready-Provisioning, erzwungener Zugriff, erforderliche Konfigurationsvalidierung und die Provenienz für den Kernel, den libkrunfw-Commit und den Konfigurations-Hash vorliegen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- The packaged macOS ARM64 VM guest returns Landlock ABI version 1 or higher from the version query.
- A sandbox using
landlock.compatibility: hard_requirementand known-existing paths reaches Ready. - A runtime smoke test demonstrates that a declared path is accessible and an undeclared path is denied.
- The VM-runtime build fails unless the final kernel config has
CONFIG_SECURITY=y,CONFIG_SECURITY_LANDLOCK=y, andCONFIG_LSMcontainslandlock. - Runtime provenance records the effective kernel version, libkrunfw commit, and final kernel-config hash.
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_requirementand 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.
- Vorherrschende Sprache
- Rust
- Sterne
- 8.7k
- Forks
- 1.3k
- Ø Merge
- 2 T. 6 Std.
- Gemergte PRs (30 T.)
- 297
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus NVIDIA/OpenShell
-
area:docs
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 88/100
-
state:triage-needed
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
-
area:cli state:validated
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
-
state:triage-needed
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
-
area:build spike state:review-ready state:stale
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 68/100
Alle Issues in NVIDIA/OpenShell
Ähnliche Issues
-
bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
yantrikos/yantrik-os#255 ·
-
bug CLI custom-model
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
raphamorim/rio#1956 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
rust-bitcoin/rust-bitcoin#6930 · 1 Kommentar ·