Skip to content

bubblewrap: reopen proc_fd from inside namespace - #769

Open
Duncaen wants to merge 1 commit into
containers:mainfrom
Duncaen:apparmor-disconnected-path
Open

bubblewrap: reopen proc_fd from inside namespace#769
Duncaen wants to merge 1 commit into
containers:mainfrom
Duncaen:apparmor-disconnected-path

Conversation

@Duncaen

@Duncaen Duncaen commented Jul 29, 2026

Copy link
Copy Markdown

AppArmor in complain or enforce mode will not allow the use of fds that are "disconnected" from the namespace root. Disconnected as far as I understand means that its from a separate mount namespace and it won't be able to reconstruct a full path string to match against rules.

This results in apparmor disallowing openat calls wit h EACCESS:

$ aa-exec -p flatpak bwrap --ro-bind / / id   
bwrap: setting up uid map: Permission denied
AVC apparmor="ALLOWED" operation="open" class="file" info="Failed name lookup - disconnected path" error=-13 profile="flatpak//null-/usr/bin/bwrap" name="proc/3483250/uid_map" pid=3483250 comm="bwrap" requested_mask="wr" denied_mask="wr" fsuid=1000 ouid=1000
[3518338] openat(AT_FDCWD, "/proc", O_RDONLY|O_PATH) = 3
...
[3518338] clone(child_stack=NULL, flags=CLONE_NEWNS|CLONE_NEWUSER|SIGCHLD) = 3518339
...
[3518339] openat(3, "self", O_RDONLY|O_PATH)      = 4
[3518339] openat(4, "uid_map", O_RDWR|O_CLOEXEC)  = -1 EACCES (Permission denied)

Reopen the /proc file descriptor from inside the namespace to avoid
AppArmor complaining about the path being disconnected.

Signed-off-by: Duncan Overbruck <mail@duncano.de>
@Duncaen
Duncaen force-pushed the apparmor-disconnected-path branch from 30c45a6 to e0fae30 Compare July 29, 2026 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant