
# Scripts Bash pour détecter et atténuer CVE-2026-31431 (Copy Fail) — élévation de privilèges locale du noyau Linux via socket AF_ALG, incluant la désactivation du module et la configuration seccomp.
Ce projet fournit un ensemble de scripts Bash pour détecter et atténuer la vulnérabilité d'élévation de privilèges locaux CVE-2026-31431 (également connue sous le nom de « Copy Fail ») dans le noyau Linux.
a664bf3d603d et correctifs ultérieursCette vulnérabilité existe dans l'implémentation des sockets AF_ALG du noyau Linux. Un attaquant pourrait obtenir une élévation de privilèges locaux en construisant une opération de liaison authencesn spécifique.
| Fichier | Utilisation | Autorisation d'exécution |
|---|---|---|
check_cve_2026_31431.sh | Détection d'impact de la vulnérabilité et évaluation des risques | Utilisateur standard ou root |
cve-2026-31431-mitigate.sh | Exécution des mesures d'atténuation (désactivation du module, génération de la configuration seccomp) | Nécessite root |
bash check_cve_2026_31431.sh
Le script vérifie les éléments suivants, un par un :
CONFIG_CRYPTO_USER_API_AEADalgif_aead / af_algauthencesn (pour déterminer si le système est déjà atténué)Le résultat final fournit un niveau de risque global : UNKNOWN / LOW / MEDIUM / HIGH.
Remarque : Le script d'atténuation nécessite des privilèges root.
sudo bash cve-2026-31431-mitigate.sh
Les opérations d'atténuation comprennent :
/etc/modprobe.d/disable-algif-aead.conf pour interdire le chargement du module algif_aeadalgif_aead est déjà chargé, tentative de déchargement (rmmod)depmod -a pour mettre à jour les dépendances des modulessudo bash cve-2026-31431-mitigate.sh --verify-only # Vérification uniquement, sans écrire de configuration
sudo bash cve-2026-31431-mitigate.sh --write-seccomp # Génère en plus une configuration seccomp Docker
sudo bash cve-2026-31431-mitigate.sh --seccomp-path /path # Spécifie le chemin de sortie seccomp
Le critère de référence pour déterminer si l'atténuation est effective : échec de la liaison authencesn.
La « Vérification 5 : Validation de l'atténuation (liaison authencesn) » du script de détection tente d'exécuter :
import socket
s = socket.socket(38, 5, 0) # AF_ALG
s.bind(("aead", "authencesn(hmac(sha256),cbc(aes))"))
CONFIG_CRYPTO_USER_API_AEAD=y (compilé statiquement dans le noyau), la désactivation du module est généralement inefficace ; seule une mise à niveau du noyau est possible.algif_aead est actuellement utilisé, rmmod peut échouer. Il est recommandé de vérifier après un redémarrage lors d'une fenêtre de maintenance.socket(AF_ALG).a664bf3d603d et les correctifs ultérieurs.Les scripts ont été testés dans les environnements suivants :
grep, sed, lsmod, modprobe, rmmod, depmod)python3 ou python (pour la validation du socket AF_ALG)Licence MIT
Les scripts fournis dans ce projet sont destinés uniquement à la détection de sécurité et à l'atténuation temporaire ; ils ne remplacent pas la mise à niveau vers le correctif officiel du noyau. Avant d'utiliser ces scripts, assurez-vous de bien comprendre leurs opérations (comme la désactivation de modules du noyau) et testez-les d'abord dans un environnement de test. L'auteur décline toute responsabilité en cas de pertes directes ou indirectes résultant de l'utilisation de cet outil.