
Copie Échouée (CVE-2026-31431) est une faille logique dans le module algif_aead du noyau Linux — faisant partie de l'API crypto userspace AF_ALG. Elle a été divulguée le 29 avril 2026 par Theori / Xint Code.
Un script de détection en lecture seule pour la vulnérabilité d'élévation de privilèges locaux Copy Fail du noyau Linux.
Aucun code d'exploitation. Aucune socket AF_ALG ouverte. Aucun fichier écrit en dehors de/etc/modprobe.d(uniquement si vous appliquez la mitigation manuellement).
Copy Fail (CVE-2026-31431) est un défaut logique dans le module algif_aead du noyau Linux — faisant partie de l'API crypto userspace AF_ALG. Il a été divulgué le 29 avril 2026 par Theori / Xint Code.
Un script Python de 732 octets peut donner à un utilisateur local non privilégié un accès root complet sur pratiquement toutes les principales distributions Linux construites depuis 2017 — sans conditions de course, sans offsets du noyau, ni payloads compilés.
| Propriété | Détail |
|---|
| CVE | CVE-2026-31431 |
| CVSS | 7.8 ÉLEVÉE |
| Type | Élévation de privilèges locaux (LPE) |
| Noyaux affectés | 4.14 – 6.18.21, 6.19.0 – 6.19.11 |
| Cause racine | Optimisation in-place algif_aead (commit 72548b093ee3, 2017) |
| Correctif en amont | Revert via le commit a664bf3d603d |
| Fiabilité de l'exploit | Déterministe — aucune condition de course requise |
modprobe.d, paramètre de ligne de commande du noyau initcall_blacklistkmod selon USN-8226-1Note sur Ubuntu / Debian : Ubuntu n'incrémente pas la version du noyau en amont lors du backport des correctifs de sécurité. Le script vérifie donc la version du paquet
kmod(>= 31+20240202-2ubuntu7.2selon USN-8226-1) plutôt que de se fier uniquement à la chaîne de version du noyau.
| Distribution | Méthode de vérification |
|---|---|
| Ubuntu / Linux Mint | Version du paquet kmod (USN-8226-1) |
| Debian | Version du paquet kmod + suivi de sécurité |
| Parrot OS | Version du paquet kmod (Debian rolling) |
| RHEL / CentOS / AlmaLinux / Rocky | dnf updateinfo + paramètre initcall_blacklist |
| Fedora | dnf updateinfo |
| Amazon Linux | dnf check-update --security |
| SUSE / openSUSE | zypper lp |
| Arch Linux | pacman -Syu linux |
# Téléchargement
curl -O https://raw.githubusercontent.com/kw-soft/copyfail/main/copyfail.sh
# Rendre exécutable
chmod +x copyfail.sh
# Exécution (root recommandé pour une visibilité complète du module)
sudo ./copyfail.sh
============================================
CVE-2026-31431 'Copy Fail' — Détection sécurisée
============================================
[*] Noyau : 6.8.0-71-generic
[!] Le noyau 6.8.0-71-generic se situe dans la plage vulnérable en amont (4.14 – 6.19.11)
[~] La vérification du backport de la distribution suit — le numéro de version seul n'est pas concluant
[*] Statut du module algif_aead :
[!] algif_aead est CHARGÉ — la surface d'attaque est active
[*] Statut du correctif de la distribution :
Distribution : Ubuntu 24.04
kmod installé : 31+20240202-2ubuntu6
kmod requis : >= 31+20240202-2ubuntu7.2
[!] kmod 31+20240202-2ubuntu6 < 31+20240202-2ubuntu7.2 — mitigation NON appliquée
============================================
RÉSULTAT
============================================
[!] VULNÉRABLE — noyau affecté et algif_aead actif
============================================
CVE-2026-31431 'Copy Fail' — Détection sécurisée
============================================
[*] Noyau : 6.8.0-71-generic
[!] Le noyau 6.8.0-71-generic se situe dans la plage vulnérable en amont (4.14 – 6.19.11)
[~] La vérification du backport de la distribution suit — le numéro de version seul n'est pas concluant
[*] Statut du module algif_aead :
[✓] algif_aead n'est PAS chargé
[✓] Liste noire modprobe active : /etc/modprobe.d/disable-algif_aead.conf
[*] Statut du correctif de la distribution :
Distribution : Ubuntu 24.04
kmod installé : 31+20240202-2ubuntu7.2
kmod requis : >= 31+20240202-2ubuntu7.2
[✓] kmod >= 31+20240202-2ubuntu7.2 — mitigation USN-8226-1 présente
============================================
RÉSULTAT
============================================
[✓] ATTÉNUÉ — algif_aead est bloqué
[~] Appliquez un noyau corrigé dès qu'il est disponible pour résoudre complètement le problème
sudo apt update && sudo apt upgrade && sudo reboot
Ceci installe le paquet kmod corrigé (USN-8226-1) qui dépose une règle modprobe.d bloquant algif_aead.
Si un redémarrage immédiat n'est pas possible :
echo 'install algif_aead /bin/false' | sudo tee /etc/modprobe.d/disable-algif.conf
sudo update-initramfs -u
sudo rmmod algif_aead 2>/dev/null || echo "Module en cours d'utilisation — redémarrage requis"
⚠️ Sur les noyaux de la famille RHEL,
algif_aeadest intégré au noyau (CONFIG_CRYPTO_USER_API_AEAD=y).
Les règlesmodprobe.dn'ont aucun effet. Utilisez plutôt le paramètre grub :
sudo grubby --update-kernel=ALL --args='initcall_blacklist=algif_aead_init'
sudo reboot
sudo pacman -Syu linux && sudo reboot
La mitigation n'a aucun impact sur les éléments suivants :
dm-crypt / LUKSSeules les applications explicitement configurées pour utiliser le moteur afalg ou qui lient directement des sockets AEAD AF_ALG peuvent être affectées — c'est rare dans les déploiements standard.
Hetzner n'applique pas les mises à jour du système d'exploitation automatiquement. Ubuntu fournit unattended-upgrades pré-installé, mais il doit être activé et configuré.
# Vérifier si les mises à jour de sécurité automatiques sont actives
cat /etc/apt/apt.conf.d/20auto-upgrades
# Afficher l'historique des mises à jour
grep "^Start-Date\|^Commandline" /var/log/apt/history.log | tail -30
# Vérifier si la mitigation kmod a été appliquée automatiquement
grep "kmod\|algif" /var/log/apt/history.log
# Vérifier la dernière exécution d'unattended-upgrades
tail -30 /var/log/unattended-upgrades/unattended-upgrades.log
Note : Même avec
unattended-upgradesactivé, les redémarrages automatiques sont désactivés par défaut.
Un nouveau noyau ne devient actif qu'après unrebootmanuel.
Ce script est destiné à être utilisé sur des systèmes que vous possédez ou que vous êtes autorisé à tester.
Il effectue des vérifications en lecture seule et n'exploite en aucun cas la vulnérabilité.