Commit 3fa0af4c authored by Gabriel Totev's avatar Gabriel Totev Committed by John Johansen
Browse files

apparmor: shift uid when mediating af_unix in userns



Avoid unshifted ouids for socket file operations as observed when using
AppArmor profiles in unprivileged containers with LXD or Incus.

For example, root inside container and uid 1000000 outside, with
`owner /root/sock rw,` profile entry for nc:

/root$ nc -lkU sock & nc -U sock
==> dmesg
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 [<== should be 1000000]

Fix by performing uid mapping as per common_perm_cond() in lsm.c

Signed-off-by: default avatarGabriel Totev <gabriel.totev@zetier.com>
Fixes: c05e7058 ("apparmor: add fine grained af_unix mediation")
Signed-off-by: default avatarJohn Johansen <john.johansen@canonical.com>
parent c5bf96d2
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment