🗓️ Contexte

Article publié le 20 mai 2026 par Picus Security (picussecurity.com), rédigé par Umut Bayram. Il s’agit d’une analyse technique approfondie de la classe de vulnérabilités Dirty Frag, découverte et rapportée par Hyunwoo Kim (@v4bel), divulguée le 7 mai 2026.

🔍 Description de Dirty Frag

Dirty Frag est une classe de vulnérabilités du noyau Linux permettant d’obtenir les privilèges root sur la majorité des distributions Linux. Elle repose sur l’enchaînement de deux vulnérabilités distinctes qui exploitent le mécanisme de zero-copy via splice() pour injecter une référence à une page du page cache en lecture seule dans un fragment (frag) d’un sk_buff, que le noyau modifie ensuite lors du traitement cryptographique en place.

Le mécanisme est analogue à Dirty Pipe ou Copy Fail, mais cible spécifiquement le fragment (frag) du buffer réseau struct sk_buff plutôt que struct pipe_buffer.

🐛 CVE-2026-43284 — xfrm-ESP Page-Cache Write

  • Composant affecté : implémentation IPsec ESP (esp_input())
  • Mécanisme : une faille logique dans esp_input() permet de contourner la protection Copy-on-Write (skb_cow_data()) lorsque le sk_buff n’est pas cloné et ne possède pas de frag_list
  • Exploitation : via la combinaison ESP + ESN (crypto_authenc_esn_decrypt()), l’attaquant effectue 48 écritures de 4 octets pour remplacer les 192 premiers octets de /usr/bin/su par un exécutable ELF de type root-shell
  • Impact : exécution du binaire su modifié (bit setuid-root intact) → shell root
  • Contrainte : nécessite les privilèges de création de namespace utilisateur (souvent bloqué sur Ubuntu)

🐛 CVE-2026-43500 — RxRPC Page-Cache Write

  • Composant affecté : implémentation du protocole RxRPC (rxkad_verify_packet_1)
  • Mécanisme : déchiffrement in-place des 8 premiers octets du payload via le chiffrement fcrypt (AFS), écrivant directement dans le page cache
  • Exploitation : l’attaquant brute-force la clé de session K (portage de fcrypt en user-space) pour produire les octets souhaités, puis effectue 3 écritures de 8 octets (chevauchantes) sur /etc/passwd pour vider le champ de mot de passe root (x → chaîne vide)
  • Résultat : entrée root modifiée de root:x:0:0:root:/root:/bin/bash en root::0:0:GGGGGG/root:/bin/bashauthentification root sans mot de passe
  • Contrainte : nécessite le module noyau RxRPC (absent par défaut sur RHEL)

⛓️ Chaînage des deux CVE

Les deux variantes sont complémentaires : CVE-2026-43284 couvre les environnements où RxRPC est absent (RHEL), CVE-2026-43500 couvre ceux où la création de namespace est bloquée (Ubuntu). Leur enchaînement assure une couverture fiable sur la majorité des distributions Linux.

🛡️ Mitigation temporaire

Désactivation des modules noyau concernés via :

p r i n t f ' i n s t a l l e s p 4 / b i n / f a l s e \ n i n s t a l l e s p 6 / b i n / f a l s e \ n i n s t a l l r x r p c / b i n / f a l s e \ n ' / e t c / m o d p r o b e . d / d i r t y f r a g . c o n f ; r m m o d e s p 4 e s p 6 r x r p c ; e c h o 3 > / p r o c / s y s / v m / d r o p _ c a c h e s

📌 Type d’article

Analyse technique approfondie à destination des équipes de sécurité et CTI, visant à documenter les mécanismes d’exploitation de Dirty Frag et à promouvoir la plateforme de simulation Picus Security.

🧠 TTPs et IOCs détectés

TTP

  • T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
  • T1222.002 — File and Directory Permissions Modification: Linux and Mac File and Directory Permissions Modification (Defense Evasion)
  • T1548.001 — Abuse Elevation Control Mechanism: Setuid and Setgid (Privilege Escalation)
  • T1003.008 — OS Credential Dumping: /etc/passwd and /etc/shadow (Credential Access)

IOC

  • CVEs : CVE-2026-43284NVD · CIRCL
  • CVEs : CVE-2026-43500NVD · CIRCL
  • Chemins : /usr/bin/su
  • Chemins : /etc/passwd
  • Chemins : /etc/modprobe.d/dirtyfrag.conf

🟡 Indice de vérification factuelle : 50/100 (moyenne)

  • ⬜ picussecurity.com — source non référencée (0pts)
  • ✅ 11189 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 5 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 4 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ 0/2 CVE(s) confirmée(s) (0pts)

🔗 Source originale : https://www.picussecurity.com/resource/blog/dirty-frag-lpe-cve-2026-43284-and-cve-2026-43500-deep-dive