This was fixed in Questing 6.16.0-13.13.

** Tags added: sts

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/2121257

Title:
  [SRU] Apparmor: Unshifted uids for hardlinks and unix sockets in user
  namespaces

Status in linux package in Ubuntu:
  Fix Released
Status in linux source package in Jammy:
  In Progress
Status in linux source package in Noble:
  In Progress
Status in linux source package in Plucky:
  In Progress
Status in linux source package in Questing:
  Fix Released

Bug description:
  [ Impact ]

  Apparmor-confined applications running in lxc containers may encounter denials
  when attempting to access hard links or unix sockets which would not fail
  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 # permission denied (check host journal below)
  ```

  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 ]

  [ Other Information ]

  Original mailing list submissions:
  
https://lore.kernel.org/linux-security-module/20250416224209.904863-2-gabriel.to...@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

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2121257/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to