v0.1.17 — Landlock ABI v9 support
landrun now targets Landlock ABI v9 (via go-landlock v0.9.0), adding
IPC scoping, UNIX-socket connect controls, and audit-logging
configuration on top of the existing filesystem and TCP restrictions.
⚠️ Breaking changes
- The default target is now Landlock ABI v9 in strict mode. On
kernels that don't support v9, commands now fail unless you pass
--best-effort(which gracefully degrades to the best ABI your kernel
supports). Most users on current kernels will want--best-effort. - Building from source now requires Go 1.24+.
- New default restriction — IPC scoping: sandboxed processes can no
longer connect to abstract UNIX sockets or signal processes outside
their Landlock domain (ABI v6+). Relax with--unrestricted-scopedif
this breaks your workload (e.g. some X11 / D-Bus setups). - New default restriction — pathname UNIX sockets: on ABI v9+
kernels, connecting to UNIX sockets created outside the sandbox (DNS
via nscd, D-Bus, database sockets, etc.) is restricted. Allow specific
sockets with--unix <path>.
✨ New features
--unix <path>: allowconnect(2)/sendmsg(2)on a pathname UNIX
domain socket (ABI v9+).--unrestricted-scoped: opt out of IPC scoping (ABI v6+).--ignore-missing: gracefully ignore paths that don't exist instead
of erroring.--log-disable-originating,--log-enable-subprocesses,
--log-disable-subdomains: configure audit logging of Landlock
denials (ABI v7+).- Automatic multithreaded enforcement via thread synchronization
(TSYNC, ABI v8) when supported by the kernel.
🔧 Internal / maintenance
- Upgraded
go-landlocktov0.9.0andgolang.org/x/systov0.40.0. - Reworked the restriction engine to enforce all requested domains in a
single ruleset layer, fixingreferhandling in mixed
restricted/unrestricted configurations. - CI: dropped Go 1.22 from the compatibility matrix (now 1.24 + stable).
- Expanded README (kernel compatibility table V6–V9, Multipath-TCP
caveat, new examples) and test suite.
📋 Kernel compatibility
| Feature | Min kernel | ABI |
|---|---|---|
| IPC scoping (abstract UNIX sockets, signals) | 6.12 | 6 |
| Audit logging of denials | 6.15 | 7 |
| Thread synchronization (TSYNC) | 7.0 | 8 |
| Pathname UNIX socket connect/sendmsg control | latest | 9 |
Note: Landlock's TCP restrictions apply only to "classic" TCP sockets.
Since Go 1.24,net.Listendefaults to Multipath TCP and cannot
currently be restricted by Landlock.