
PACKET_EDIT_MEME.c (auch bekannt als CVE-2026-46331): schon wieder ein Page-Cache-Poisoning-Albtraum
net/sched act_pedit Partial-COW-Page-Cache-Korruption (Verursacher 899ee91156e5,
vorhanden ab v5.18 .. behoben in v7.1-rc7). packet_edit_meme.c verwandelt sie in einen unprivilegierten
lokalen Root-Zugriff: Ein userns-CAP_NET_ADMIN-Kindprozess überschreibt den gecachten ELF-Eintrag von
setuid-root /bin/su mit setgid(0)+setuid(0)+execve("/bin/sh")-Shellcode.
make
./packet_edit_meme
./packet_edit_meme --ubuntu # AppArmor-gated Ubuntu: aa-exec bypass first
| Distro | Kernel | Flag | Ergebnis |
|---|---|---|---|
| RHEL 10.0 | 6.12.0-228.el10 | (none) | ROOT |
| Debian 13 trixie | 6.12.90+deb13.1 | (none) | ROOT |
| Ubuntu 24.04.4 | 6.17.0-22 | --ubuntu | ROOT |
| Ubuntu 26.04 | 7.0.0-14-generic | --ubuntu | FAIL |
RHEL / Debian: unprivilegierte userns sind standardmäßig offen, kein Flag nötig. RHEL liefert
kein cls_basic / em_meta mit, daher wird automatisch auf matchall zurückgegriffen.
Ubuntu verweigert unconfined unprivilegierte userns über zwei Sysctls:
kernel.apparmor_restrict_unprivileged_userns # denies unconfined userns creation
kernel.apparmor_restrict_unprivileged_unconfined # forces unconfined change_profile to STACK,
# so an aa-exec permissive profile cannot
# shed the userns restriction
--ubuntu führt sich über aa-exec -p {trinity,chrome,flatpak} neu aus (Profile, die eine
userns,-Regel enthalten).
24.04.4 : userns=1, unconfined=0 -> aa-exec bypass WORKS
26.04 : userns=1, unconfined=1 -> aa-exec bypass CLOSED