
Script d’atténuation sans redémarrage pour le bug du noyau Copy Fail (CVE-2026-31431). Désactive le module vulnérable algif_aead et évince le cache de pages pour les binaires setuid.
Utilitaire d'atténuation minimal sans redémarrage pour Copy Fail / CVE-2026-31431.
Ce script désactive le chemin du module vulnérable algif_aead et tente de
décharger le module immédiatement. Il effectue également une éviction de la mémoire cache de pages
au mieux pour /usr/bin/su.
Ceci est une atténuation, pas un correctif du noyau. Installez le noyau corrigé de votre fournisseur dès qu'il est disponible.
Le script exécute l'atténuation recommandée par l'avis public Copy Fail :
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
Cela empêche algif_aead d'être rechargé via modprobe et le décharge
du noyau en cours d'exécution si possible.
Il exécute ensuite un petit extrait Python qui appelle posix_fadvise() avec
POSIX_FADV_DONTNEED pour la première page de :
/usr/bin/suos.posix_fadvise(fd, 0, page, os.POSIX_FADV_DONTNEED)
Il s'agit d'une tentative au mieux d'évincer la page concernée de la mémoire cache de pages. Ce n'est pas un substitut à l'application de correctifs et ne garantit pas le nettoyage de chaque binaire setuid ciblé possible.
/usr/bin/su ?La preuve de concept publique Copy Fail cible /usr/bin/su par défaut. Ce
script tente donc de supprimer la première page de /usr/bin/su de la mémoire cache de pages
après avoir désactivé le chemin du module vulnérable.
Si votre environnement a subi une exploitation testée ou suspectée contre un autre binaire setuid, examinez et adaptez le script en conséquence.
Examinez d'abord le script.
sudo ./mitigate-copy-fail.sh
Vérifiez que le module n'est pas chargé :
lsmod | grep '^algif_aead' || echo "algif_aead is not loaded"
Vérifiez que la règle modprobe existe :
cat /etc/modprobe.d/disable-algif.conf
Sortie attendue :
install algif_aead /bin/false
Essayez de charger le module manuellement :
sudo modprobe algif_aead
Il devrait échouer ou refuser de se charger.
N'annulez cela qu'après avoir installé un noyau corrigé ou après avoir accepté le risque.
sudo rm -f /etc/modprobe.d/disable-algif.conf
sudo modprobe algif_aead
Ce script ne :
Pour les charges de travail non fiables telles que les conteneurs, les sandbox, les exécuteurs CI et les hôtes
multi-utilisateurs, envisagez un durcissement supplémentaire tel que le blocage de la création de sockets AF_ALG
avec seccomp.