
Script d'audit pour CVE-2026-43284 + CVE-2026-43500 « Dirty Frag »
Script d'audit pour CVE-2026-43284 + CVE-2026-43500 « Dirty Frag » — une vulnérabilité chaînée d'élévation de privilèges locale dans le noyau Linux, divulguée le 2026-05-07 avec un exploit public fonctionnel, avant que les correctifs des distributions ne soient disponibles.
Aussi connu sous le nom de « Copy Fail 2: Electric Boogaloo » — mêmes chemins de code, auteur d'exploit différent.
Dirty Frag chaîne deux bugs distincts du noyau découverts par Hyunwoo Kim (@v4bel), chacun ciblant la même classe de vulnérabilité — le déchiffrement en place sur des tampons paginés qui ne sont pas la propriété exclusive du noyau.
AF_INET / AF_INET6 socket (IPsec ESP)
└── In-place decryption path (commit cac2661c53f3, Jan 2017)
└── splice() feeds page cache pages as destination buffers
└── Plaintext write at attacker-controlled offset in page cache
└── Target SUID binary in memory → root
esp4, esp6f4c50a4034e6AF_RXRPC socket (Andrew File System / RxRPC protocol)
└── Same in-place pattern added to rxrpc (June 2023)
└── Same page-cache write primitive
└── root
rxrpcaa54b1d27fe0| Propriété | Dirty Cow (2016) | Dirty Pipe (2022) | Copy Fail (2026) | Dirty Frag (2026) |
|---|---|---|---|---|
| Condition de course | ✅ Requise | ❌ Non | ❌ Non | ❌ Non |
| Granularité d'écriture | Arbitraire | 1 octet aligné | 4 octets fixes | Texte en clair complet, tout offset |
| Modification du disque | ✅ | ❌ | ❌ | ❌ |
| Trace forensique | ✅ | ❌ | ❌ | ❌ |
| Évasion de conteneur | Limitée | Limitée | Possible | Oui (page cache partagé) |
| Exploit public | ✅ | ✅ | ✅ | ✅ avant les correctifs |
| Vecteurs d'attaque | 1 | 1 | 1 | 2 (esp + rxrpc) |
| Plage de noyaux | Statut |
|---|---|
| < 4.14 | ✅ Non affecté |
| 4.14 – dernier non corrigé | ❌ Vulnérable |
mainline avec f4c50a4034e6 | ✅ Corrigé |
| Plage de noyaux | Statut |
|---|---|
| < 6.4 | ✅ Non affecté (motif pas encore introduit) |
| 6.4 – dernier non corrigé | ❌ Vulnérable |
mainline avec aa54b1d27fe0 | ✅ Corrigé |
| Distribution | CVE-2026-43284 | CVE-2026-43500 | Version corrigée |
|---|---|---|---|
| AlmaLinux / RHEL 8 | ❌ Affecté | ✅ Non fourni | kernel-4.18.0-553.123.2.el8_10 |
| AlmaLinux / RHEL 9 | ❌ Affecté | ⚠ Uniquement si kernel-modules-partner (dépôt Devel) est installé | via dnf upgrade |
| AlmaLinux / RHEL 10 | ❌ Affecté | ❌ Affecté | via dnf upgrade |
| Ubuntu 20.04–24.04 | ❌ Affecté | ⚠ Selon le noyau | via apt dist-upgrade |
| Debian stable | ❌ Affecté | ⚠ Selon le noyau | Correctif uniquement dans sid (linux ≥ 7.0.4-1) |
| SUSE / openSUSE | ❌ Affecté | ❌ Affecté | via zypper update kernel-default |
| Arch Linux | ❌ Affecté | ❌ Affecté | via pacman -Syu linux |
git clone https://github.com/Quaerendir/dirtyfrag-audit
cd dirtyfrag-audit
chmod +x audit_dirtyfrag.sh
./audit_dirtyfrag.sh
One-liner distant (à vérifier avant exécution en prod) :
curl -fsSL https://raw.githubusercontent.com/Quaerendir/dirtyfrag-audit/main/audit_dirtyfrag.sh | bash
| Code | Signification |
|---|---|
0 | Sûr — aucune des deux CVE n'est applicable |
1 | Vulnérable — au moins une CVE active sans mesure d'atténuation |
2 | Atténué — contournement actif, correctif toujours requis |
| Vérification | CVE |
|---|---|
| Plage de versions du noyau (4.14+ pour ESP, 6.4+ pour rxrpc) | Les deux |
| Versions de noyau corrigées spécifiques à la distribution | Les deux |
Module esp4 / esp6 chargé (lsmod) | CVE-2026-43284 |
Module rxrpc chargé (lsmod) | CVE-2026-43500 |
| Détection module intégré vs chargeable | Les deux |
Règles de liste noire modprobe.d (par module) | Les deux |
| État/politique IPsec XFRM — sessions actives qui seraient interrompues | CVE-2026-43284 |
| Module kAFS / AFS utilisé — consommateurs rxrpc actifs | CVE-2026-43500 |
| État du correctif à chaud KernelCare | Les deux |
Accessibilité de /proc/sys/vm/drop_caches | Les deux |
| Contexte conteneur / Docker / Kubernetes | Les deux |
| Utilisateurs connectés actifs (risque multi-tenant) | Les deux |
| État SELinux / AppArmor | Les deux |
| Détection d'interface IPsec/VTI/XFRM | CVE-2026-43284 |
# RHEL / AlmaLinux
dnf clean metadata && dnf upgrade && reboot
# Ubuntu / Debian
apt-get update && apt-get dist-upgrade && reboot
# SUSE
zypper update kernel-default && reboot
# Arch
pacman -Syu linux && reboot
Tout d'abord, vérifiez l'utilisation active :
ip xfrm state # IPsec — if output non-empty, blacklisting breaks IPsec
lsmod | grep kafs # AFS — if loaded, rxrpc is in use
Appliquer le contournement :
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' \
> /etc/modprobe.d/dirtyfrag.conf
rmmod esp4 esp6 rxrpc 2>/dev/null || true
# IMPORTANT: flush page cache to evict any poisoned pages
echo 3 > /proc/sys/vm/drop_caches
kcarectl --update
kcarectl --patch-info | grep -iE 'CVE-2026-43284|CVE-2026-43500|dirtyfrag'
dm-crypt / LUKS · WireGuard · OpenVPN · SSH · TLS/kTLS · OpenSSL · GnuTLS
Les démons IKE (strongSwan, libreswan) continuent de fonctionner — seul le traitement des paquets ESP dans le noyau est désactivé.