Yet another problem with
ap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks
Please make sure that the snapd.apparmor service is enabled and started.
I’ve already done all of the regular stuff - verifying that apparmor
and snapd.apparmor
are enabled and running. They are, but both immediately exited without any type of error message.
There’s a weird twist though - I can start snaps, and I’m seeing plenty of apparmor messages in my logs. I can even get those messages to go away if I edit the file in /etc/apparmor.d, run aa-complain
, and then run the snap as root instead of an unprivileged user.
So something is running even though the services say they’ve exited. I can launch some snaps (but probably ones marked ‘classic’). But I can’t run all - I get the ‘privilege escalation’ message.
Information requested in other reponses:
- Two different systems, one is 24.04, one is 24.10.
Eris - 24.04
bgiles@eris:~$ snap version
snap 2.67
snapd 2.67
series 16
ubuntu 24.04
kernel 6.8.0-51-generic
bgiles@eris:~$ sudo aa-status | grep snap-confine
/snap/core/17200/usr/lib/snapd/snap-confine
/snap/core/17200/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
/snap/snapd/21759/usr/lib/snapd/snap-confine
/snap/snapd/21759/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
/snap/snapd/23258/usr/lib/snapd/snap-confine
/snap/snapd/23258/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
/snap/snapd/23545/usr/lib/snapd/snap-confine
/snap/snapd/23545/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
/usr/lib/snapd/snap-confine
/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
/usr/bin/snap//null-/snap/snapd/23545/usr/bin/snap//null-/snap/snapd/23545/usr/lib/snapd/snap-confine
/usr/bin/snap//null-/snap/snapd/23545/usr/lib/snapd/snap-confine
bgiles@eris:~$ snap debug confinement
strict
bgiles@eris:~$ snap debug sandbox-features
apparmor: kernel:caps kernel:dbus kernel:domain kernel:domain:attach_conditions kernel:file kernel:io_uring kernel:ipc kernel:mount kernel:namespaces kernel:network kernel:network_v8 kernel:policy kernel:policy:permstable32:allow kernel:policy:permstable32:audit kernel:policy:permstable32:complain kernel:policy:permstable32:cond kernel:policy:permstable32:deny kernel:policy:permstable32:hide kernel:policy:permstable32:kill kernel:policy:permstable32:label kernel:policy:permstable32:prompt kernel:policy:permstable32:quiet kernel:policy:permstable32:subtree kernel:policy:permstable32:tag kernel:policy:permstable32:xindex kernel:policy:unconfined_restrictions kernel:policy:versions kernel:ptrace kernel:query kernel:query:label kernel:rlimit kernel:signal parser:allow-all parser:cap-audit-read parser:cap-bpf parser:include-if-exists parser:io-uring parser:mqueue parser:prompt parser:qipcrtr-socket parser:snapd-internal parser:unconfined parser:unsafe parser:userns parser:xdp policy:default support-level:full
confinement-options: classic devmode strict
dbus: mediated-bus-access
kmod: mediated-modprobe
mount: layouts mount-namespace per-snap-persistency per-snap-profiles per-snap-updates per-snap-user-profiles stale-base-invalidation
seccomp: bpf-actlog bpf-argument-filtering kernel:allow kernel:errno kernel:kill_process kernel:kill_thread kernel:log kernel:trace kernel:trap kernel:user_notif
udev: device-cgroup-v2 device-filtering tagging
bgiles@eris:~$ SNAPD_DEBUG=1 SNAP_CONFINE_DEBUG=1 snap run hello-world
2025/01/21 18:41:16.454214 logger.go:99: DEBUG: restarting into "/snap/snapd/current/usr/bin/snap"
2025/01/21 18:41:16.464447 logger.go:99: DEBUG: -- snap startup {"stage":"start", "time":"1737510076.464445"}
2025/01/21 18:41:16.464971 logger.go:99: DEBUG: checking internal apparmor_parser candidate at /snap/snapd/23545/usr/lib/snapd/apparmor_parser
2025/01/21 18:41:16.471095 logger.go:99: DEBUG: executing snap-confine from /snap/snapd/23545/usr/lib/snapd/snap-confine
2025/01/21 18:41:16.473664 logger.go:99: DEBUG: SELinux not enabled
2025/01/21 18:41:16.475897 logger.go:99: DEBUG: creating transient scope snap.hello-world.hello-world
2025/01/21 18:41:16.476770 logger.go:99: DEBUG: using session bus
2025/01/21 18:41:16.478504 logger.go:99: DEBUG: create transient scope job: /org/freedesktop/systemd1/job/20890
2025/01/21 18:41:16.492575 logger.go:99: DEBUG: job result is "done"
2025/01/21 18:41:16.492593 logger.go:99: DEBUG: transient scope snap.hello-world.hello-world-9132572d-10dd-4f64-bdc5-056f567db907.scope created
2025/01/21 18:41:16.492842 logger.go:99: DEBUG: waited 16.026628ms for tracking
2025/01/21 18:41:16.492860 logger.go:99: DEBUG: -- snap startup {"stage":"snap to snap-confine", "time":"1737510076.492855"}
DEBUG: -- snap startup {"stage":"snap-confine enter", "time":"1737510076.495247"}
DEBUG: SNAP_MOUNT_DIR (probed): /snap
DEBUG: umask reset, old umask was 02
DEBUG: security tag: snap.hello-world.hello-world
DEBUG: executable: /usr/lib/snapd/snap-exec
DEBUG: confinement: non-classic
DEBUG: base snap: core
DEBUG: ruid: 1000, euid: 0, suid: 0
DEBUG: rgid: 1000, egid: 1000, sgid: 1000
DEBUG: apparmor label on snap-confine is: /usr/bin/snap
DEBUG: apparmor mode is: complain
snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks
Please make sure that the snapd.apparmor service is enabled and started.
Chaos - 24.10
bgiles@chaos:/etc/apparmor$ snap version
snap 2.66.1+24.10
snapd 2.66.1+24.10
series 16
ubuntu 24.10
kernel 6.11.0-13-generic
bgiles@chaos:/etc/apparmor$ sudo aa-status | grep snap-confine
/snap/core/17200/usr/lib/snapd/snap-confine
/snap/core/17200/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
/snap/snapd/23258/usr/lib/snapd/snap-confine
/snap/snapd/23258/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
/snap/snapd/23545/usr/lib/snapd/snap-confine
/snap/snapd/23545/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
/usr/lib/snapd/snap-confine
/usr/lib/snapd/snap-confine//mount-namespace-capture-helper
bgiles@chaos:/etc/apparmor$ snap debug confinement
strict
bgiles@chaos:/etc/apparmor$ snap debug sandbox-features
apparmor: kernel:caps kernel:dbus kernel:domain kernel:domain:attach_conditions kernel:file kernel:io_uring kernel:ipc kernel:mount kernel:namespaces kernel:network kernel:network_v8 kernel:policy kernel:policy:notify kernel:policy:notify:user:file kernel:policy:permstable32:allow kernel:policy:permstable32:audit kernel:policy:permstable32:complain kernel:policy:permstable32:cond kernel:policy:permstable32:deny kernel:policy:permstable32:hide kernel:policy:permstable32:kill kernel:policy:permstable32:label kernel:policy:permstable32:prompt kernel:policy:permstable32:quiet kernel:policy:permstable32:subtree kernel:policy:permstable32:tag kernel:policy:permstable32:xindex kernel:policy:unconfined_restrictions kernel:policy:versions kernel:ptrace kernel:query kernel:query:label kernel:rlimit kernel:signal parser:allow-all parser:cap-audit-read parser:cap-bpf parser:include-if-exists parser:io-uring parser:mqueue parser:prompt parser:qipcrtr-socket parser:unconfined parser:unsafe parser:userns parser:xdp policy:default support-level:full
confinement-options: classic devmode strict
dbus: mediated-bus-access
kmod: mediated-modprobe
mount: layouts mount-namespace per-snap-persistency per-snap-profiles per-snap-updates per-snap-user-profiles stale-base-invalidation
seccomp: bpf-actlog bpf-argument-filtering kernel:allow kernel:errno kernel:kill_process kernel:kill_thread kernel:log kernel:trace kernel:trap kernel:user_notif
udev: device-cgroup-v2 device-filtering tagging
bgiles@chaos:/etc/apparmor$ SNAPD_DEBUG=1 SNAP_CONFINE_DEBUG=1 snap run hello-world
2025/01/21 18:42:08.561895 logger.go:99: DEBUG: snap (at "/snap/snapd/current") is older ("2.66.1") than distribution package ("2.66.1+24.10")
2025/01/21 18:42:08.568895 logger.go:99: DEBUG: -- snap startup {"stage":"start", "time":"1737510128.568877"}
2025/01/21 18:42:08.570352 logger.go:99: DEBUG: checking distro apparmor_parser at /usr/sbin/apparmor_parser
2025/01/21 18:42:08.570398 logger.go:99: DEBUG: apparmor 4.0 ABI detected but ignored
2025/01/21 18:42:08.587176 logger.go:99: DEBUG: executing snap-confine from /usr/lib/snapd/snap-confine
2025/01/21 18:42:08.591292 logger.go:99: DEBUG: SELinux not enabled
2025/01/21 18:42:08.591875 logger.go:99: DEBUG: creating transient scope snap.hello-world.hello-world
2025/01/21 18:42:08.594145 logger.go:99: DEBUG: using session bus
2025/01/21 18:42:08.602839 logger.go:99: DEBUG: create transient scope job: /org/freedesktop/systemd1/job/17156
2025/01/21 18:42:08.629614 logger.go:99: DEBUG: job result is "done"
2025/01/21 18:42:08.629707 logger.go:99: DEBUG: transient scope snap.hello-world.hello-world-6d6bff2c-2df1-4151-b3aa-9a14fe912d9d.scope created
2025/01/21 18:42:08.630396 logger.go:99: DEBUG: waited 35.930265ms for tracking
2025/01/21 18:42:08.630442 logger.go:99: DEBUG: -- snap startup {"stage":"snap to snap-confine", "time":"1737510128.630435"}
DEBUG: -- snap startup {"stage":"snap-confine enter", "time":"1737510128.634765"}
DEBUG: SNAP_MOUNT_DIR (probed): /snap
DEBUG: umask reset, old umask was 02
DEBUG: security tag: snap.hello-world.hello-world
DEBUG: executable: /usr/lib/snapd/snap-exec
DEBUG: confinement: non-classic
DEBUG: base snap: core
DEBUG: ruid: 1000, euid: 0, suid: 0
DEBUG: rgid: 1000, egid: 1000, sgid: 1000
DEBUG: apparmor label on snap-confine is: /usr/bin/snap
DEBUG: apparmor mode is: complain
snap-confine has elevated permissions and is not confined but should be. Refusing to continue to avoid permission escalation attacks
Please make sure that the snapd.apparmor service is enabled and started.