Package: lxc
Version: 1:6.0.4-4+deb13u3+b1
Severity: normal
X-Debbugs-Cc: [email protected]
Dear Maintainer,
Since runc 1.2.8/1.3.3 (hardening for CVE-2025-52881), every container
start under Docker inside an unprivileged, nesting-enabled LXC container
fails during init with:
open sysctl net.ipv4.ip_unprivileged_port_start file: reopen fd 8:
permission denied
runc now writes sysctls through detached procfs mounts. When AppArmor
evaluates the fd re-open, the kernel renders the path without a mount
prefix, so /proc/sys/net/... is matched as /sys/net/... and hits the
"deny /sys/[^fdck]*{,/**} wklx," rule embedded in liblxc's generated
profile. Explicit deny rules are quiet, so nothing is logged, and the
deny cannot be overridden via lxc.apparmor.raw. This affects e.g. any
Docker (docker-ce with containerd.io >= 2.x) installation inside an LXC
container on trixie.
Upstream discussion: https://github.com/lxc/lxc/issues/4606
Upstream fix (merged 2025-11-20): https://github.com/lxc/lxc/pull/4609
i.e. commit b89ed0a "apparmor: skip /proc and /sys restrictions if
nesting is enabled" — included upstream in v6.0.6 and 7.0, and present
on the stable-6.0 branch. Debian testing/sid (7.0.0) are fixed; trixie's
1:6.0.4-4+deb13u3 does not carry it (the AppArmor change in +deb13u2 was
the unrelated static-profile fix for #1111087).
Please consider cherry-picking b89ed0a into the next trixie point
release: it is small, self-contained, and already vetted on the upstream
stable-6.0 branch.
Whether an installed liblxc is affected can be checked with:
strings /usr/lib/x86_64-linux-gnu/liblxc.so.1 | grep -F 'deny /sys/['
which still prints the [^fdck] rule on 1:6.0.4-4+deb13u3+b1.