🔍 Contexte
Publié le 13 mai 2026 sur SANS ISC Diary, cet article présente Fragnesia, un exploit d’élévation de privilèges locale (LPE) universel sous Linux, découvert par William Bowling de l’équipe V12 Security. Le code source est disponible publiquement sur GitHub.
🐛 Vulnérabilité
Fragnesia appartient à la classe de vulnérabilités Dirty Frag, distincte du bug original dirtyfrag mais exploitant la même surface d’attaque : le sous-système Linux XFRM ESP-in-TCP. Le bug est un logic bug : le SKB (socket buffer) « oublie » qu’un fragment est partagé lors de la coalescence.
- Surface : sous-système XFRM ESP-in-TCP du noyau Linux
- Impact : écriture arbitraire d’octets dans le page cache noyau de fichiers en lecture seule
- Sans condition de course requise
- Versions affectées : tous les noyaux Linux antérieurs au 13 mai 2026 (patch : https://lists.openwall.net/netdev/2026/05/13/79)
⚙️ Mécanisme d’exploitation
- Namespace utilisateur + réseau :
unshare(CLONE_NEWUSER | CLONE_NEWNET)pour obtenirCAP_NET_ADMINsans privilèges réels sur l’hôte - Installation d’une SA XFRM : association de sécurité ESP-in-TCP en mode transport via
NETLINK_XFRMavec AES-128-GCM et clé connue (SPI0x100) - Table de keystream : construction d’une table de 256 entrées mappant chaque octet de keystream AES-GCM à son nonce IV correspondant via
AF_ALG - Trigger splice/ULP : splice de 4096 octets du fichier cible dans le flux TCP, puis activation de
TCP_ULP espintcp— le noyau déchiffre le record ESP en place, XORant le keystream dans la page physique du page cache - Écriture octet par octet : répétition pour chaque octet du payload (192 octets)
- Exécution :
execve("/usr/bin/su")sur le binaire modifié en cache → shell root viasetresuid(0,0,0)/setresgid(0,0,0)/execve /bin/sh
⚠️ Points notables
- La modification du page cache n’est pas persistée sur disque ; le binaire
/usr/bin/susur disque reste intact - Après exploitation, toute exécution de
surelance un shell root jusqu’à éviction de la page - Sur Ubuntu, AppArmor restreint les namespaces non privilégiés par défaut (
kernel.apparmor_restrict_unprivileged_userns=0requis) - Mitigation : déchargement des modules
esp4,esp6,rxrpc(identique à dirtyfrag)
📋 Type d’article
Il s’agit d’une analyse technique et d’une publication de recherche présentant un exploit LPE Linux avec PoC public, détaillant le mécanisme d’exploitation, les versions affectées et la mitigation disponible.
🧠 TTPs et IOCs détectés
TTP
- T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
- T1611 — Escape to Host (Privilege Escalation)
- T1548 — Abuse Elevation Control Mechanism (Privilege Escalation)
IOC
- Fichiers :
fragnesia.c - Chemins :
/usr/bin/su - Chemins :
/bin/sh - Chemins :
/etc/modprobe.d/dirtyfrag.conf
Malware / Outils
- Fragnesia (tool)
🟢 Indice de vérification factuelle : 70/100 (haute)
- ✅ isc.sans.edu — source reconnue (liste interne) (20pts)
- ✅ 5143 chars — texte complet (fulltext extrait) (15pts)
- ✅ 4 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 3 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://isc.sans.edu/diary/32980