🔍 Contexte

PubliĂ© le 13 mai 2026 sur GitHub, 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

  1. Namespace utilisateur + rĂ©seau : unshare(CLONE_NEWUSER | CLONE_NEWNET) pour obtenir CAP_NET_ADMIN sans privilĂšges rĂ©els sur l’hĂŽte
  2. Installation d’une SA XFRM : association de sĂ©curitĂ© ESP-in-TCP en mode transport via NETLINK_XFRM avec AES-128-GCM et clĂ© connue (SPI 0x100)
  3. 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
  4. 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
  5. Écriture octet par octet : rĂ©pĂ©tition pour chaque octet du payload (192 octets)
  6. ExĂ©cution : execve("/usr/bin/su") sur le binaire modifiĂ© en cache → shell root via setresuid(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/su sur disque reste intact
  • AprĂšs exploitation, toute exĂ©cution de su relance 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=0 requis)
  • 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)

📝 EDIT 13.05.2026 21h11 CEST correction source de l’article et titre (pas universel comme mis en evidence & dĂ©montrĂ© par https://www.bortzmeyer.org/fragnesia.html )


🔗 Source originale : https://github.com/v12-security/pocs/tree/main/fragnesia