ACK: Re: [SRU][J][PATCH v2 0/2] Apparmor: Unshifted uids for hardlinks and unix sockets in user namespaces

Paolo Pisati paolo.pisati at canonical.com
Thu Nov 6 12:53:16 UTC 2025


On Thu, Oct 30, 2025 at 09:27:27AM -0500, Wesley Hershberger wrote:
> BugLink: https://bugs.launchpad.net/bugs/2121257
> 
> [ Impact ]
> 
> Apparmor-confined applications running in lxc containers may encounter denials
> when attempting to access hard links or unix sockets which would not be denied
> outside a user namespace. This occurs because the userns uid is not converted
> to a kuid before the permissions check.
> 
> This affects applications confined by apparmor and running in user namespaces.
> 
> The user who originally reported this described missing keyboard input for
> Firefox running in a LXD container due to EPERM against the ibus socket.
> 
> [ Test Plan ]
> 
> lxc launch ubuntu:24.04 podia # on Ubuntu 24.04 host
> lxc shell podia
> 
> Hard links:
> ```
> cat > linkit.aa <<EOF
> #include <tunables/global>
> 
> profile linkit {
> #include <abstractions/base>
> 
> /usr/bin/ln mr,
> 
> audit owner /root/link l,
> }
> EOF
> apparmor_parser linkit.aa
> 
> echo long > chain
> aa-exec -p linkit ln chain link
> ```
> 
> Expected result:
> 
> success (code 0)
> No denials on dmesg
> 
> Actual result:
> 
> permission denied
> 
> $ dmesg | tail
> ...
> apparmor="DENIED" operation="link" class="file" namespace="root//lxd-podia_<var-snap-lxd-common-lxd>" profile="linkit" name="/root/link" pid=1655 comm="ln" requested_mask="l" denied_mask="l" target="/root/chain" fsuid=1000000 ouid=0
> 
> Unix sockets:
> ```
> cat > sockit.aa <<EOF
> #include <tunables/global>
> 
> profile sockit {
> #include <abstractions/base>
> 
> /usr/bin/nc.openbsd mr,
> 
> audit owner /root/sock rw,
> }
> EOF
> apparmor_parser sockit.aa
> 
> nc -lkU sock &
> aa-exec -p sockit nc -U sock
> ```
> 
> Expected result:
> 
> open socket (Ctrl-C to exit)
> No denials on dmesg
> 
> Actual result:
> 
> permission denied
> 
> $ dmesg | tail
> ...
> apparmor="DENIED" operation="connect" class="file" namespace="root//lxd-podia_<var-snap-lxd-common-lxd>" profile="sockit" name="/root/sock" pid=3924 comm="nc" requested_mask="wr" denied_mask="wr" fsuid=1000000 ouid=0
> 
> [ Where problems could occur ]
> 
> The patches modify code that is only called when apparmor mediates access to
> unix sockets or hard links, so if the patches are incorrect we would expect
> to see denials or other failures related to hard links or unix sockets.
> 
> [ Other Information ]
> 
> Original mailing list submissions:
> https://lore.kernel.org/linux-security-module/20250416224209.904863-2-gabriel.totev@zetier.com/T/
> https://lists.ubuntu.com/archives/apparmor/2025-April/013602.html
> 
> Upstream patches:
> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c5bf96d20fd787e4909b755de4705d52f3458836
> https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3fa0af4cc8a31d4139ee85a7b0e3d9b4f37b3093
> 
> V1 -> V2: Backport for 5.15 (see backport descriptions for upstream references)
> 
> Gabriel Totev (2):
>   apparmor: shift ouid when mediating hard links in userns
>   apparmor: shift uid when mediating af_unix in userns
> 
>  security/apparmor/af_unix.c | 8 ++++++--
>  security/apparmor/file.c    | 6 ++++--
>  2 files changed, 10 insertions(+), 4 deletions(-)
> 
> -- 
> 2.34.1
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

Acked-by: Paolo Pisati <paolo.pisati at canonical.com>
-- 
bye,
p.



More information about the kernel-team mailing list