
Rapport de validation en laboratoire et artefacts de détection pour CVE-2026-43284 (DirtyFrag) Linux LPE. Fournit la télémétrie auditd, des règles de corrélation d'événements et une logique de détection orientée SOC pour le chemin d'écriture du cache de pages XFRM/ESP.
Portée : Validation d'escalade de privilèges locale Linux (LPE) axée sur le chemin XFRM/ESP associé à CVE-2026-43284.
Ce dépôt contient un rapport en anglais et des artefacts de preuve issus d'une validation en laboratoire contrôlé du PoC public DirtyFrag. L'accent n'est pas mis sur la fourniture d'un guide d'exploitation, mais sur la documentation de ce qui était visible dans les journaux d'audit Linux et comment ces événements peuvent être transformés en logique de détection SOC pratique.
Rapport PDF complet :
EN: reports/DirtyFrag_CVE-2026-43284_EN.pdf
PL: reports/DirtyFrag_CVE-2026-43284_PL.pdf
Le test a été effectué pour vérifier si un utilisateur local normal pouvait obtenir un shell root dans une VM de laboratoire vulnérable et pour déterminer quels événements peuvent être capturés avec auditd.
CVE-2026-43284 concerne une gestion inappropriée des fragments de pages partagées lors d'opérations ESP/IPsec. Sous certaines conditions, un attaquant local peut influencer les données dans le cache de pages et élever ses privilèges. Ubuntu Security évalue cette vulnérabilité à CVSS 3.1 : 7.8 Élevé.
| Vulnérabilité | Portée | Composant | CVSS |
|---|---|---|---|
| CVE-2026-43284 | Écriture dans le cache de pages XFRM/ESP | XFRM / ESP, esp4/esp6 | 7.8 Élevé |
Références techniques :
Référence système complète : evidence/logs/system-info-table.md
Avant l'exécution du PoC, le contexte de test était un compte utilisateur normal. Après avoir exécuté ./exp, un shell root a été obtenu et confirmé avec whoami et id.

Après le test, les journaux auditd et les résumés de sortie ont été exportés vers un répertoire de preuves local et copiés dans ce dépôt.






La détection la plus utile n'est pas un événement unique. Le signal le plus fort est la chaîne complète observée dans une courte fenêtre temporelle :
user namespace -> vmsplice/splice -> ESP/XFRM -> su -> root shell with AUID of a normal user
IF
dirty_frag_unshare by auid>=1000
AND count(dirty_frag_vmsplice + dirty_frag_splice by same exe or pid) >= 3 within 600s
AND MAC_IPSEC_EVENT / XFRM activity within 1200s
AND (dirty_frag_su_exec OR execve with euid=0 and auid>=1000) within 1200s
THEN
alert = "Possible DirtyFrag CVE-2026-43284 Linux LPE"
severity = high/critical
euid=0 ; cela capture également l'utilisation légitime de sudo.unshare, vmsplice, splice, l'activité XFRM/ESP, su et la création de processus root à partir d'une session utilisateur normale.kernel.unprivileged_userns_clone lorsque la compatibilité des applications le permet.lost doit rester 0 pendant les tests et la surveillance en production.Le statut auditd collecté a montré lost=2555, ce qui signifie que certains événements d'audit ont pu être perdus. La chaîne clé est toujours visible, mais les tests futurs devraient augmenter le backlog d'audit et confirmer lost=0 avant d'exécuter le PoC.
Le rapport se concentre intentionnellement sur CVE-2026-43284 / XFRM/ESP pour éviter de mélanger le périmètre de détection SOC avec d'autres chemins liés à DirtyFrag.
| Paramètre | Valeur |
|---|
| Distribution | Ubuntu 24.04.4 LTS / noble |
| Noyau de test | 6.17.0-23-generic |
| Architecture | x86_64 |
| Virtualisation | Oracle VirtualBox |
| CPU | 12th Gen Intel(R) Core(TM) i5-12450H, 1 vCPU |
| RAM | 12 GiB |
| Système de fichiers racine | ext4 |
| Utilisateur de test | uid=1000(user), gid=1000(user), groupes incluent sudo, adm, lpadmin |
| unprivileged_userns_clone | 1 |
| auditd | actif, règles d'audit DirtyFrag/LPE chargées |
| AppArmor | actif ; profil unprivileged_userns visible dans les journaux |
| Chemin | Description |
|---|
docs/DirtyFrag_CVE-2026-43284_auditd_detection_report.docx | Rapport DOCX en anglais. |
evidence/logs/audit.log | Journal auditd complet contenant les événements bruts. |
evidence/logs/dirtyfrag-filtered.log | Journal filtré contenant les événements liés à DirtyFrag/LPE. |
evidence/logs/dirty_frag_vmsplice.log | Événements vmsplice du processus PoC. |
evidence/logs/dirty_frag_splice.log | Événements splice du processus PoC. |
evidence/logs/dirty_frag_execve_su.log | Exécution de /usr/bin/su après l'activité PoC. |
evidence/logs/lpe_root_exec_from_user_session.log | Processus exécutés en tant que root à partir de la session utilisateur d'origine. |
evidence/logs/audit-key-summary.txt | Résumé du nombre d'événements par clé auditd. |
evidence/logs/audit-exec-summary.txt | Résumé des exécutables d'après aureport. |
evidence/logs/audit-rules-loaded.txt | Règles de détection auditd actives. |
evidence/logs/system-info-table.md | Tableau de référence système. |
evidence/screenshots/01-dirtyfrag-root-shell.png | Capture d'écran confirmant la transition utilisateur -> root shell. |
tools/generate-system-info-table.sh | Script utilitaire utilisé pour générer le tableau d'informations système. |
| Clé | Signification |
|---|
dirty_frag_unshare | unshare exécuté par un utilisateur non privilégié ; indique la préparation d'un espace de noms utilisateur. |
dirty_frag_vmsplice | Activité vmsplice d'un processus utilisateur ; signal principal du cache de pages. |
dirty_frag_splice | Activité splice d'un processus utilisateur ; corrélée avec vmsplice. |
dirty_frag_su_exec / dirty_frag_execve_su | Exécution de /usr/bin/su après la phase de cache de pages. |
lpe_root_exec_from_user_session | execve avec euid=0 dans une session appartenant à auid>=1000 ; preuve forte d'escalade de privilèges lorsqu'elle est corrélée. |
| Heure | Événement | Artefact | Signification |
|---|
| 21:10:48 | Règles auditd chargées | audit-rules-loaded.txt, audit.log | La surveillance était active avant l'exécution du PoC. |
| 21:11:32 | unshare par ./exp | dirtyfrag-filtered.log | Le processus utilisateur est entré dans unprivileged_userns. |
| 21:11:32-21:11:39 | vmsplice / splice par ./exp | dirty_frag_vmsplice.log, dirty_frag_splice.log | Comportement du cache de pages visible via la télémétrie des appels système. |
| 21:11:32-21:11:39 | MAC_IPSEC_EVENT / XFRM ESP | audit.log | Événements SAD-add et SA-icv-failure sur 127.0.0.1 avec SPI 0xdeadbeXX. |
| 21:11:39 | su - | dirty_frag_execve_su.log | Tentative d'entrer dans un shell root après l'exécution du PoC. |
| 21:11:39 | sh / dash en tant que root | lpe_root_exec_from_user_session.log | UID=root et EUID=root alors que AUID=user. |
| 21:11:48 | whoami en tant que root | lpe_root_exec_from_user_session.log, capture d'écran | Confirmation manuelle de l'escalade réussie. |
| 21:11:49 | id en tant que root | lpe_root_exec_from_user_session.log, capture d'écran | Confirmation manuelle de uid=0(root). |