
Script de correction et d'atténuation rapide pour CVE-2026-31431 (Copy Fail) sur VPS Ubuntu/Debian
🌐 English | Português | Español | 中文 | Íslenska
Atténuation et correctif en une commande pour CVE-2026-31431 — la vulnérabilité d'élévation de privilèges locaux « Copy Fail » du noyau Linux. Le script désactive le module algif_aead concerné, met à niveau votre noyau via apt, et (optionnellement) installe une minuterie systemd pour maintenir le système à jour.
Conçu pour les serveurs Ubuntu (également compatible avec les systèmes basés sur Debian).
⚠️ Examinez le script avant de l'exécuter. Il s'agit d'un outil de sécurité qui s'exécute en tant que root. Lisez
copyfail.shavant de le transmettre àsudo. Privilégiez toujours le processus officiel de mise à jour du noyau de votre distribution lorsque c'est possible.
CVE-2026-31431 (« Copy Fail ») est un défaut logique dans l'interface algif_aead du noyau (interface de socket AEAD de l'API crypto de l'espace utilisateur). Un utilisateur local non privilégié peut déclencher une écriture déterministe de 4 octets dans le cache de pages de n'importe quel fichier lisible — y compris les binaires setuid — et obtenir un accès root en quelques secondes. Le défaut a été introduit en 2017 (commit 72548b093ee3) et affecte tous les noyaux compilés entre 2017 et le correctif. Ce script désactive le module vulnérable pendant que vous appliquez le correctif du noyau de votre distribution.
apt-get et awk disponiblessudo)wget -O copyfail.sh https://raw.githubusercontent.com/paulorlima9/copyfail-fix/main/copyfail.sh
chmod +x copyfail.sh
sudo ./copyfail.sh
Lors de la première exécution, le script :
/etc/modprobe.d/disable-algif.conf pour mettre sur liste noire le module algif_aeadalgif_aead s'il est actuellement chargéapt-get update && apt-get upgrade -y pour récupérer le noyau corrigéUn redémarrage est requis après la mise à niveau pour charger le nouveau noyau.
sudo ./copyfail.sh [options]
| Option | Court | Description |
|---|---|---|
--help | -h | Afficher le message d'aide |
--mitigate | -m | Appliquer uniquement l'atténuation (désactiver le module algif_aead) |
--upgrade | -u | Mettre à niveau uniquement le noyau/les paquets (apt-get upgrade) |
--check | -c | Afficher l'état actuel (version du noyau, module, atténuation) |
--revert | -r | Annuler l'atténuation (après que le noyau est corrigé et redémarré) |
--supervision | -s | Activer les mises à jour automatiques quotidiennes via la minuterie systemd |
Correctif complet — appliquer l'atténuation et mettre à niveau le noyau :
sudo ./copyfail.sh
Vérifier uniquement l'état :
sudo ./copyfail.sh --check
Atténuation uniquement (sans mise à niveau du noyau) :
sudo ./copyfail.sh --mitigate
Annuler l'atténuation après avoir confirmé que le noyau est corrigé et redémarré :
sudo ./copyfail.sh --revert
Activer la mise à jour automatique quotidienne (Supervision) :
sudo ./copyfail.sh --supervision
La fonctionnalité Supervision installe une minuterie systemd qui exécute apt-get upgrade toutes les 24 heures, garantissant que les correctifs du noyau sont récupérés dès que votre distribution les publie.
Lorsqu'elle est activée, deux unités systemd sont créées :
copyfail-fix-supervision.service — service oneshot qui exécute le script avec --upgradecopyfail-fix-supervision.timer — minuterie qui déclenche le service quotidiennement (et 5 minutes après le démarrage)# Vérifier l'état de la minuterie
systemctl status copyfail-fix-supervision.timer
# Afficher la prochaine exécution planifiée
systemctl list-timers copyfail-fix-supervision.timer
# Désactiver les mises à jour automatiques
sudo systemctl stop copyfail-fix-supervision.timer
sudo systemctl disable copyfail-fix-supervision.timer
# Déclencher manuellement une mise à jour
sudo systemctl start copyfail-fix-supervision.service
install algif_aead /bin/false dans /etc/modprobe.d/disable-algif.conf afin que le module ne puisse pas être chargé au prochain démarragermmod algif_aead pour le décharger du noyau en cours d'exécution (ignoré si le module est en cours d'utilisation — redémarrage requis)apt-get update suivi d'un apt-get upgrade non interactif pour installer le dernier paquet du noyau--check, inspecte uname -r, lsmod, le fichier modprobe, et le dernier paquet linux-image-* installé--revert, supprime le fichier modprobe et recharge le module via modprobePendant l'exécution, le script affiche des indicateurs de progression :
+ (vert) — action appliquée- (rouge) — action annulée. (gris) — action ignorée (déjà appliquée ou non applicable)! (jaune) — avertissement (par ex. redémarrage requis)MIT