
Exercice de détection en laboratoire pour DirtyFrag (CVE-2026-43284) - escalade de privilèges du noyau Linux via la corruption du cache de pages xfrm-ESP. Article complet couvrant l'exécution de l'exploit, les lacunes de détection et les règles EQL corrigées utilisant Elastic Stack
Classification : Laboratoire interne - CyberLAB
Date : 24 mai 2026
Plateforme : Elastic Stack v9.4.1
Statut : Détection confirmée
Un exercice d'exploitation contrôlé simulant un adversaire après un accès initial utilisant DirtyFrag (CVE-2026-43284), une vulnérabilité d'élévation de privilèges du noyau Linux. Scénario d'attaque simulé : un utilisateur à faibles privilèges (saskia, uid=1001) obtenu via des identifiants phishés tente d'élever ses privilèges à root sur une machine Linux interne. Le laboratoire a utilisé une machine Ubuntu volontairement vulnérable (ubuntu-vuln, noyau 6.0.0-22-generic) isolée des réseaux de production.
L'attaquant a obtenu un accès root complet (uid=0) dans l'environnement de laboratoire. La pile de détection Elastic Security a généré 3 alertes de sévérité ÉLEVÉE (score de risque 73) identifiant correctement la chaîne d'exploitation. Cependant, la détection a nécessité un réglage manuel - la configuration par défaut présentait des lacunes qui auraient entraîné des alertes manquées.
En résumé : Les machines Linux non patchées exécutant un noyau <= 6.x sont vulnérables. Si un attaquant possède déjà un point d'appui à faibles privilèges, cet exploit lui donne un accès root complet silencieusement et rapidement, sans aucune trace sur le disque visible par les outils d'intégrité des fichiers.
| Élément | Détail |
|---|---|
| Vulnérabilité | DirtyFrag - CVE-2026-43284 (voie xfrm-ESP), CVE-2026-43500 (voie RxRPC) |
| Impact CVSS | Élévation de privilèges locale complète vers root |
| Noyaux affectés | Noyau Linux >= janvier 2017 (durée de vie de 9 ans) |
| Distributions affectées | Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE, CentOS Stream 10, Fedora 44 |
| Contournement d'intégrité des fichiers | Fichiers sur disque inchangés - AIDE, Tripwire, surveillance de hachage indiquent tous un état sain |
| PoC public | Disponible (V4bel/dirtyfrag sur GitHub) |
| Temps jusqu'à root | < 10 minutes à partir d'un point d'appui à faibles privilèges |
auditd par défaut ne produisent aucune preuve. Sans règles d'appel système explicites pour socket, splice et unshare, l'exploit s'exécute silencieusement - aucun journal, aucune alerte. Le déploiement par défaut d'Elastic Agent n'ajoute pas ces règles automatiquement.process.parent.pid comme clé de corrélation. En pratique, DirtyFrag crée des processus intermédiaires, brisant cette corrélation. La correction - corrélation par auditd.session - a été identifiée et implémentée au cours de cet exercice./etc/shadow, accédé aux clés autorisées SSH, écrit un marqueur de persistance (/root/pwned.txt) et initié une reconnaissance réseau via nc. Tout cela s'est produit dans les 30 minutes suivant l'accès initial.| Priorité | Action |
|---|---|
| Immédiate | Patcher le noyau Linux vers une version corrigée sur tous les hôtes. Appliquer les avis de sécurité des éditeurs pour Ubuntu, RHEL, AlmaLinux, openSUSE, CentOS, Fedora. |
| Court terme | Déployer des règles explicites d'appel système auditd pour socket, splice et unshare sur tous les hôtes Linux surveillés par Elastic Agent. |
| Court terme | Mettre à jour les règles de détection EQL pour corréler par auditd.session plutôt que par process.parent.pid pour les séquences de manipulation d'espaces de noms. |
| En continu | Traiter les alertes d'élévation de privilèges avec un score de risque >= 73 comme une priorité élevée de triage. La règle actuelle se déclenche en quelques secondes après l'élévation. |
Objectif : Valider la couverture de détection pour l'exploitation de DirtyFrag dans le SOC du laboratoire personnel, identifier les lacunes de détection et produire une règle de détection corrigée fondée sur le comportement observé de l'attaquant.
Modèle de menace : Adversaire simulé après accès initial avec des identifiants phishés pour un compte utilisateur à faibles privilèges (saskia, uid=1001). Objectif : élévation de privilèges vers root via DirtyFrag en utilisant la voie de réception xfrm-ESP. Exécution en laboratoire effectuée via la console Proxmox - fonctionnellement équivalente à un accès SSH postérieur.
Deux niveaux de capacité de l'attaquant ont été considérés :
Cet exercice a couvert le niveau vanille.
DirtyFrag est le troisième d'une famille de bogues du noyau Linux apparentés qui exploitent tous la même cause racine :
| CVE | Surnom | Introduit | Chemin |
|---|---|---|---|
| CVE-2022-0847 | Dirty Pipe | - | pipe |
| CVE-2026-31431 | Copy Fail | - | splice |
| CVE-2026-43284 | DirtyFrag | Jan 2017 (commit cac2661c53f3) | xfrm-ESP |
| CVE-2026-43500 | DirtyFrag | Juin 2023 (commit 2dc334f1a63a) | RxRPC |
Cause racine : Les chemins d'ajout de datagrammes IPv4/IPv6 ne définissaient pas SKBFL_SHARED_FRAG après que skb_splice_from_iter() ait placé une page du cache de pages dans un tampon de socket (sk_buff). Le chemin d'entrée ESP effectuait ensuite une cryptographie en place sur les pages du cache de pages contrôlées par l'attaquant, les traitant comme des skbs non linéaires ordinaires non clonés.
Primitive d'exploit : Écriture contrôlée de 4 ou 8 octets dans le cache de pages. Déterministe - aucune condition de concurrence requise.
Chaîne d'exploitation :
/usr/bin/su) dans le cache de pagessplice() de sorte que la page du fichier se trouve dans frag[0] de struct sk_buffxfrm-ESPexecve() du noyau - retournent des octets corrompusPropriété d'évasion critique : Le fichier sur disque n'est jamais modifié. Les outils de surveillance de l'intégrité des fichiers (AIDE, Tripwire, vérifications de hachage) indiquent tous que le fichier cible est sain.
Distributions vulnérables confirmées : Ubuntu 24.04.4, RHEL 10.1, AlmaLinux 10, openSUSE Tumbleweed, CentOS Stream 10, Fedora 44.