<feed xmlns='http://www.w3.org/2005/Atom'>
<title>procd/jail/landlock.c, branch master</title>
<subtitle>OpenWrt service / process manager</subtitle>
<id>https://git.openwrt.org/project/procd/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/procd/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/'/>
<updated>2026-08-21T04:26:55Z</updated>
<entry>
<title>jail: integrate the Landlock LSM via OCI annotations</title>
<updated>2026-08-21T04:26:55Z</updated>
<author>
<name>Daniel Golle</name>
</author>
<published>2026-06-17T12:41:34Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/procd/commit/?id=b15ef29c6c983d6dd85e71f9cf3fc3ef86b87ca3'/>
<id>urn:sha1:b15ef29c6c983d6dd85e71f9cf3fc3ef86b87ca3</id>
<content type='text'>
Add a Landlock backend (landlock.c) that builds a ruleset from a set of
path rules and applies it with landlock_restrict_self() just before exec,
using the syscalls directly with a cached ABI probe so it degrades on
kernels without Landlock. Rules are expressed through OCI annotations:
landlock.ro, .rx and .rw map colon-separated path lists to read, execute
and write access masks. Any Landlock rule implies no_new_privs.

Annotation parsing in parseOCI() also gains mdwe flag handling with a
no_inherit-requires-refuse_exec_gain sanity check, the cgroup
memory.pct limit derived from MemTotal, and the private ubus/netifd
switches keyed off the landlock.rw value. A bundle that bind-mounts the
host's /etc/resolv.conf while running its own netifd is now rejected, as
the bind would shadow the container's own resolvers.

Signed-off-by: Daniel Golle &lt;daniel@makrotopia.org&gt;
</content>
</entry>
</feed>
