Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Dirty-Frag-CVE-2026-43284 — Un rapport sur Dirty Frag, qui est une chaîne de vulnérabilités d'escalade de privilèges locaux (LPE) sous Linux permettant à un utilisateur non privilégié d'obtenir un accès root. | Kitploit
Outils/GitHubGitHub/kuniyal08/dirty-frag-cve-2026-43284
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationAnalyse ForensiqueDétection d'IntrusionApprentissage et ÉducationRéponse aux IncidentsLabs et Pratique

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
kuniyal08/dirty-frag-cve-2026-43284

Dirty-Frag-CVE-2026-43284

Un rapport sur Dirty Frag, qui est une chaîne de vulnérabilités d'escalade de privilèges locaux (LPE) sous Linux permettant à un utilisateur non privilégié d'obtenir un accès root.

Voir le dépôt
117il y a 1 moisPas encore vérifié

Dirty Frag (CVE-2026-43284 et CVE-2026-43500)

Laboratoire de reproduction et de détection d'exploit pour une chaîne d'élévation de privilèges locale du noyau Linux.

Statut : VÉRIFIÉ. J'ai effectué la reproduction, la vérification sans fichier et la détection au niveau des appels système dans le laboratoire (noyau 6.18.9+kali-amd64). Ce document est un journal de laboratoire. Chaque affirmation ci-dessous a été observée lors de l'exécution de la reproduction. Les captures d'écran et les artefacts sont de véritables captures de la machine virtuelle.

Table des matières

  • Vue d'ensemble
  • Pourquoi c'est important
  • Détails techniques
  • Environnement de laboratoire
  • Structure du dépôt
  • Liste de progression
  • Procédure de reproduction
  • Ingénierie de détection
  • Réponse à incident
  • Atténuation
  • Dépannage
  • Références et crédits
  • Aspects légaux et éthiques

Vue d'ensemble

Dirty Frag combine deux bugs logiques déterministes dans le noyau Linux. Ces bugs permettent à un utilisateur local non privilégié d'écraser le cache de pages de fichiers en lecture seule (par exemple, /usr/bin/su) et d'obtenir un shell root :

VarianteCVEPoint de chuteChemin de déclenchementNécessite un userns non privilégié
Écriture xfrm‑ESP dans le cache de pagesCVE‑2026‑43284crypto_authenc_esn_decrypt() dans esp_input()socket(AF_INET) avec encapsulation UDP, puis xfrm_input()Oui (CAP_NET_ADMIN)
Écriture RxRPC dans le cache de pagesCVE‑2026‑43500rxkad_verify_packet_1() (pcbc(fcrypt))socket(AF_RXRPC)Non

Les deux variantes utilisent le même schéma racine que Dirty Pipe et Copy Fail. L'appel système splice(2) place une référence à une page du cache de pages d'un fichier dans l'emplacement frag d'un sk_buff côté émetteur. L'attaquant ne peut que lire ce fichier. Le code du noyau côté réception effectue ensuite un STOCKAGE crypto en place par-dessus ce frag. Cela modifie le cache de pages en mémoire RAM. Aucune écriture sur disque n'a lieu, donc la surveillance de l'intégrité des fichiers (AIDE, Tripwire) ne peut pas le voir. L'attaque est déterministe. Elle n'a pas de fenêtre de course et aucun panique du noyau en cas d'échec.

  • Plage affectée (selon l'avis en amont) :
    • Variante ESP : de cac2661c53f3 (2017‑01) à f4c50a4034e6 (corrigé 2026‑05‑05)
    • Variante RxRPC : de 2dc334f1a63a (2023‑06) à aa54b1d27fe0 (corrigé 2026‑05‑10)
  • PoC public : V4bel/dirtyfrag (divulgué 2026‑05‑07)
  • Avis : CERT VU#980487, Red Hat Bugzilla 2467771
  • Sévérité (CVSS 3.1, selon Canonical) : CVE-2026-43284 = 8,8 (Élevée), CVE-2026-43500 = 7,8 (Élevée)

Pourquoi c'est important

Dirty Frag est une élévation de privilèges sans fichier. Elle corrompt le cache de pages en mémoire, pas le fichier sur disque. La surveillance traditionnelle de l'intégrité des fichiers ne peut pas la voir. La détection doit se faire au niveau des appels système. La chaîne utilise ces primitives d'appels système : socket(AF_ALG)/socket(AF_RXRPC), splice et unshare(CLONE_NEWUSER|CLONE_NEWNET). Le chemin ESP crée également des sockets UDP AF_INET et netlink. Cette couche est au cœur de l'ingénierie de détection de ce dépôt.

Détails techniques

Les deux variantes utilisent le même point de chute : un crypto en place qui STOCKE des octets sur une page du cache de pages que l'attaquant place avec splice(2).

Variante ESP (CVE-2026-43284)

  1. L'attaquant ouvre une paire de sockets UDP sur loopback et configure le côté réception avec UDP_ENCAP_ESPINUDP.
  2. Il enregistre un en-tête de fil ESP forgé (SPI, seq_no_lo et IV) dans un tube avec vmsplice, puis 16 octets de /usr/bin/su au décalage de fichier cible avec splice.
  3. Un seul splice pousse le tube dans le socket d'envoi. splice_to_socket() définit MSG_SPLICE_PAGES. Cela place la page du cache de pages de /usr/bin/su directement dans skb->frags[0].
  4. À la réception, cette séquence s'exécute : xfrm4_udp_encap_rcv, puis xfrm_input, puis esp_input(). La branche vulnérable skip_cow (!skb_cloned() && !skb_has_frag_list()) contourne skb_cow_data(). Elle effectue un déchiffrement AEAD en place avec la page du cache de pages comme source et destination.
  5. crypto_authenc_esn_decrypt() émet un STOCKAGE des 32 bits de poids fort de l'ESN. Cette valeur est replay_esn->seq_hi. L'attaquant choisit cette valeur lors de l'enregistrement de l'AS avec l'attribut netlink XFRMA_REPLAY_ESN_VAL.

L'attaquant contrôle à la fois l'emplacement (décalage splice) et la valeur (4 octets). La vérification d'authentification s'exécute après le stockage, donc la couche crypto ne signale jamais l'écriture. Cette variante nécessite CAP_NET_ADMIN et utilise unshare(CLONE_NEWUSER|CLONE_NEWNET).

Variante RxRPC (CVE-2026-43500)

rxkad_verify_packet_1() effectue un déchiffrement pcbc(fcrypt) sur un seul bloc directement sur le frag skb épinglé par splice. Elle ne copie pas les données d'abord. L'attaquant choisit une clé de session (add_key("rxrpc", …)) pour que decrypt(ciphertext) soit égal à desired_plaintext. Cela produit un STOCKAGE de 8 octets. Cette variante cible /etc/passwd. Elle ne nécessite pas d'espace de noms utilisateur. Elle requiert le module rxrpc.ko (chargé par défaut sur Ubuntu).

Résultat de l'exploit

Le PoC public cible /usr/bin/su. Il écrit 48 stockages ESP de 4 octets chacun (192 octets au décalage de fichier 0). Il remplace les premiers octets du cache de pages par un ELF de shell root statique. Le point d'entrée de l'ELF exécute setgid(0); setuid(0); setgroups(0,NULL); execve("/bin/sh", …). Un seul execve("/usr/bin/su") donne alors un shell root.

Le correctif en amont

Le correctif ESP (mainline f4c50a4034e6) marque les frags de pages qui arrivent via splice() avec le drapeau SKBFL_SHARED_FRAG. La branche skip_cow dans esp_input() vérifie désormais aussi ce drapeau. Les skbs à frags partagés passent par skb_cow_data() avant le déchiffrement AEAD en place.

Le correctif RxRPC (mainline aa54b1d27fe0) ajoute une vérification skb->data_len à côté de la vérification skb_cloned() existante. Le noyau copie un skb non linéaire avec des données paginées avant le déchiffrement pcbc(fcrypt) en place.

Environnement de laboratoire

ComposantDétails
HyperviseurVirtualBox
VM cibleKali Linux 2026.1 (instantané restauré à un état vulnérable)
Noyau6.18.9+kali‑amd64 (plus ancien que les correctifs de mai 2026)
PoC d'exploitV4bel/dirtyfrag (fichier C unique)
Détectionauditd (règles dans detection/dirtyfrag.rules)

Capture d'écran de la configuration du laboratoire VirtualBox :

Configuration du laboratoire VirtualBox

Structure du dépôt

Télécharger l’outil