
CVE-2026-31431 Script de détection de la vulnérabilité Copy Fail du noyau Linux
CVE-2026-31431 (Copy Fail) est une vulnérabilité d'élévation de privilèges locale dans le noyau Linux. Elle exploite les sockets AF_ALG (famille d'adresses 38) combinés à l'appel système de copie zéro splice() pour contourner les permissions d'écriture et altérer le cache de pages (page cache), permettant ainsi de modifier des binaires SUID sans permission d'écriture et d'obtenir les privilèges root.
socket(AF_ALG, SOCK_SEQPACKET, 0) # Création du socket AF_ALG
-> bind(authencesn(hmac(sha256),cbc(aes))) # Liaison du modèle de chiffrement AEAD
-> sendmsg(opération AEAD) # Déclenchement du chemin de chiffrement du noyau
-> splice(-> fichier cible) # Écriture zéro copie, contournement des contrôles de permission
-> Altération de fichiers SUID tels que /usr/bin/su # Élévation de privilèges vers root
| Branche du noyau | Plage affectée | Version corrigée |
|---|---|---|
| mainline / 6.19.x | < 6.19.12 | >= 6.19.12 |
| 6.18.x (stable) | < 6.18.22 | >= 6.18.22 |
| 6.12.x (LTS) | < 6.12.23 | >= 6.12.23 |
| 6.6.x (LTS) | < 6.6.87 | >= 6.6.87 |
| 6.1.x (LTS) | < 6.1.130 | >= 6.1.130 |
| 4.14 ~ < 7.0 | Toutes affectées | Mise à niveau vers une version sécurisée |
| < 4.14 | Non affecté | - |
| >= 7.0 | Correctif inclus | - |
# Téléchargement du script
wget https://raw.githubusercontent.com/tangjie1/CVE-2026-31431-Check/main/cve-2026-31431-check.sh
# Attribution des droits d'exécution et lancement (nécessite root)
chmod +x cve-2026-31431-check.sh
sudo ./cve-2026-31431-check.sh
# Mode non interactif (pour automatisation/CI)
sudo ./cve-2026-31431-check.sh --non-interactive
| Numéro | Élément de détection | Description |
|---|---|---|
| [1.0] | Tableau des plages de versions affectées | Affiche la comparaison des versions affectées/corrigées par branche |
| [1.1] | Version du noyau | Comparaison avec les plages affectées connues et les bases corrigées |
| [1.2] | État du module algif_aead | Quatre états : intégré / chargé / présent chargeable à la demande / absent |
| [1.3] | Modèle de chiffrement authencesn | Disponibilité dans /proc/crypto |
| [1.4] | Mesures d'atténuation | initcall_blacklist + liste noire modprobe.d |
| [1.5] | Évaluation globale | Conclusion safe/medium/high/critical par croisement multi-facteurs |
| Numéro | Élément de détection | Description |
|---|---|---|
| [2.1] | Détection du cache de pages SUID | Comparaison dd direct I/O vs hachage du cache |
| [2.2] | Historique de chargement des modules | dmesg + durée de chargement lsmod |
| [2.3] | Analyse de l'historique Shell | Correspondance de mots-clés dans .bash_history de tous les utilisateurs |
| [2.4] | Détection des fichiers système | Utilisateurs anormaux UID=0 / heure de modification de passwd & SUID |
| [2.5] | Analyse des répertoires temporaires | Fichiers suspects dans /tmp /var/tmp /dev/shm sur les dernières 24h |
| [2.6] | Audit des journaux système | Enregistrements d'échec su + mots-clés de vulnérabilité sudo |
| [2.7] | Détection d'évasion de conteneur | Environnement Docker + seccomp + /proc/1/root |
| Méthode | Principe | Redémarrage requis | Scénario applicable |
|---|---|---|---|
| Méthode 1 | Liste noire modprobe.d + rmmod | Non | CONFIG=m (mode module) |
| Méthode 2 | Paramètre noyau initcall_blacklist | Oui | CONFIG=y (mode intégré) ou défense en profondeur |
| Méthode 3 | Mise à niveau du noyau vers une version sécurisée | Oui | Correctif permanent (recommandé) |
Ubuntu / Debian / Kali / CentOS / RHEL / Rocky / AlmaLinux / Fedora / openSUSE / Arch Linux / Alpine Linux
Licence MIT
Cet outil est destiné uniquement à la recherche en sécurité et aux tests d'intrusion autorisés. L'utilisateur doit s'assurer de respecter les lois et réglementations locales et de l'utiliser uniquement sur des systèmes cibles explicitement autorisés. Le développeur décline toute responsabilité en cas d'utilisation non autorisée.