
CVE-2026-31431 - Guide de Remédiation et Mesures de Protection
Ce dépôt documente la vulnérabilité CVE-2026-31431, surnommée Copy Fail, et propose une procédure de remédiation défensive pour les systèmes Linux potentiellement exposés.
⚠️ Ce dépôt est strictement orienté défense, audit autorisé, durcissement et remédiation.
Il ne fournit pas de procédure d’exploitation et ne doit pas être utilisé pour compromettre des systèmes tiers.
CVE-2026-31431 / Copy Fail est une vulnérabilité d’élévation locale de privilèges dans le noyau Linux.
Elle concerne le sous-système cryptographique du noyau, plus précisément l’interface utilisateur AF_ALG et le module algif_aead. La faille est liée à une optimisation introduite en 2017 dans le chemin AEAD du noyau Linux. Dans certaines conditions, un utilisateur local non privilégié peut provoquer une écriture contrôlée dans le d’un fichier lisible, notamment un binaire setuid, ce qui peut conduire à une élévation de privilèges vers .
rootLa vulnérabilité est considérée comme High avec un score CVSS v3.1 de 7.8.
| Élément | Détail |
|---|---|
| CVE | CVE-2026-31431 |
| Nom public | Copy Fail |
| Type | Local Privilege Escalation, LPE |
| Composant | Linux kernel crypto subsystem |
| Module concerné | algif_aead |
| Interface | AF_ALG |
| Mécanisme impliqué | AEAD, authencesn, splice(), page cache |
| Score CVSS v3.1 | 7.8 High |
| Privilèges requis | Compte local non privilégié |
| Interaction utilisateur | Aucune |
| Impact | Confidentialité, intégrité et disponibilité élevées |
Les sources publiques indiquent que les distributions Linux embarquant un noyau dérivé d’une branche vulnérable depuis l’optimisation de 2017 peuvent être exposées.
Exemples de plateformes mentionnées dans les publications publiques :
| Distribution | Exemple de version noyau testée publiquement |
|---|---|
| Ubuntu 24.04 LTS | 6.17.0-1007-aws |
| Amazon Linux 2023 | 6.18.8-9.213.amzn2023 |
| RHEL 10.1 | 6.12.0-124.45.1.el10_1 |
| SUSE 16 | 6.12.0-160000.9-default |
| Debian | Selon version noyau et statut de sécurité |
| AlmaLinux / Rocky Linux / Oracle Linux | Selon version noyau et backports fournisseur |
Le statut exact dépend de la version du noyau, du fournisseur, des backports de sécurité et des correctifs déjà appliqués.
Cette vulnérabilité est particulièrement dangereuse dans les environnements où des utilisateurs ou workloads non fiables ont accès à un shell local ou à un environnement d’exécution partagé.
Environnements à prioriser :
Risque principal :
root ;uname -a
uname -r
lsmod | grep algif_aead || true
sudo lsof -nP | grep AF_ALG || true
dpkg -l | grep -E '^ii\\s+linux-image|^ii\\s+linux-modules'
rpm -qa | grep -E '^kernel|^kernel-core'
rpm -qa | grep -E '^kernel'
Option prioritaire : appliquer le correctif noyau fournisseur La remédiation correcte consiste à installer un noyau corrigé fourni par la distribution, puis à redémarrer sur ce noyau.
sudo apt update
sudo apt full-upgrade -y
sudo reboot
sudo dnf update -y kernel kernel-core kernel-modules
sudo reboot
sudo zypper refresh
sudo zypper patch
sudo reboot
# Après redémarrage :
uname -r
Si aucun noyau corrigé n’est encore disponible ou si un redémarrage immédiat est impossible, appliquer une mitigation temporaire.
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo modprobe -r algif_aead 2>/dev/null || true
sudo rmmod algif_aead 2>/dev/null || true
sudo update-initramfs -u
sudo dracut -f
sudo mkinitrd
sudo reboot
sudo modprobe algif_aead
echo $?
Sur certains noyaux, le module peut être compilé directement dans le noyau et non chargeable/déchargeable sous forme de module.
grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)
CONFIG_CRYPTO_USER_API_AEAD=m
Le composant est un module. La mitigation par /etc/modprobe.d/ est applicable.
CONFIG_CRYPTO_USER_API_AEAD=y
Le composant est intégré au noyau. La mitigation par modprobe.d ne suffit pas.
Dans ce cas, utiliser de préférence :
Certaines sources mentionnent l’option noyau suivante comme contournement possible :
initcall_blacklist=algif_aead_init
À tester impérativement hors production avant généralisation. Cette option peut varier selon le noyau, la distribution et la configuration de démarrage.
Pour Docker, Podman, Kubernetes et CI/CD, il faut réduire la possibilité pour des workloads non fiables d’ouvrir des sockets AF_ALG.
sudo lsof -nP | grep AF_ALG || true
lsmod | grep algif_aead || true
find / -perm -4000 -type f 2>/dev/null
sudo ausearch -f /usr/bin/su 2>/dev/null || true
sudo auditctl -w /usr/bin/su -p x -k su_exec_monitoring
sudo ausearch -k su_exec_monitoring
last -a
lastlog
getent passwd
sudo find /etc/cron* -type f -ls 2>/dev/null
sudo find /root /home -name authorized_keys -type f -ls 2>/dev/null
sudo journalctl --since "48 hours ago"
#!/usr/bin/env bash
set -euo pipefail
echo "[+] CVE-2026-31431 - mitigation temporaire algif_aead"
if [[ $EUID -ne 0 ]]; then
echo "[-] Ce script doit être exécuté en root."
exit 1
fi
echo "[+] Version noyau active : $(uname -r)"
echo "[+] Désactivation persistante du chargement algif_aead"
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif-aead.conf
echo "[+] Tentative de déchargement du module"
modprobe -r algif_aead 2>/dev/null || true
rmmod algif_aead 2>/dev/null || true
if command -v update-initramfs >/dev/null 2>&1; then
echo "[+] Mise à jour initramfs Debian/Ubuntu"
update-initramfs -u
elif command -v dracut >/dev/null 2>&1; then
echo "[+] Mise à jour initramfs via dracut"
dracut -f
elif command -v mkinitrd >/dev/null 2>&1; then
echo "[+] Mise à jour initramfs via mkinitrd"
mkinitrd
else
echo "[!] Aucun outil initramfs connu détecté. Vérifiez manuellement."
fi
echo "[+] Vérification"
lsmod | grep algif_aead && echo "[!] Module encore chargé" || echo "[OK] Module non chargé"
echo "[+] Redémarrage recommandé."
Elle ne remplace pas :
l’installation d’un noyau corrigé ;
le redémarrage sur le noyau corrigé ;
la validation du statut fournisseur ;
l’analyse post-incident si une compromission est suspectée.
Elle peut également affecter certains logiciels explicitement configurés pour utiliser l’interface cryptographique AF_ALG.
Theori / Xint Code — Copy Fail Technical Write-up https://xint.io/blog/copy-fail-linux-distributions Dépôt GitHub Theori PoC https://github.com/theori-io/copy-fail-CVE-2026-31431 NVD — CVE-2026-31431 https://nvd.nist.gov/vuln/detail/CVE-2026-31431 CERT-EU — Security Advisory 2026-005 https://cert.europa.eu/publications/security-advisories/2026-005/ Ubuntu Security — CVE-2026-31431 https://ubuntu.com/security/CVE-2026-31431 Debian Security Tracker — CVE-2026-31431 https://security-tracker.debian.org/tracker/CVE-2026-31431 SUSE CVE Tracker — CVE-2026-31431 https://www.suse.com/security/cve/CVE-2026-31431.html Tenable FAQ — Copy Fail https://www.tenable.com/blog/copy-fail-cve-2026-31431-frequently-asked-questions-about-linux-kernel-privilege-escalation
Ce dépôt est fourni uniquement à des fins :
Toute utilisation offensive non autorisée est illégale et contraire à l’objectif de ce dépôt.