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-live-code-corruption — CVE-2026-31431 (Copy Fail) exploit novateur : corruption de code en direct via le cache de pages. Écrase le code de libc exit() via le partage de pages MAP_PRIVATE — affecte TOUS les processus en cours d'exécution. | Kitploit
Outils/GitHubGitHub/ikow/cve-2026-31431-live-code-corruption
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationExploitation de Binaires
GitHubikow/cve-2026-31431-live-code-corruption

CVE-2026-31431-live-code-corruption

CVE-2026-31431 (Copy Fail) exploit novateur : corruption de code en direct via le cache de pages. Écrase le code de libc exit() via le partage de pages MAP_PRIVATE — affecte TOUS les processus en cours d'exécution.

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
1il y a 3 moisPas encore vérifié

CVE-2026-31431 — Corruption de code en direct via le cache de pages

Une technique d'exploitation inédite pour CVE-2026-31431 (« Copy Fail ») qui corrompt le code exécutable des processus en cours d'exécution via le cache de pages du noyau Linux, permettant une élévation de privilèges root.

Ce qui est différent

Tous les exploits publiés pour cette CVE corrompent des fichiers de données — en modifiant /etc/passwd pour changer l'UID de root, ou en patchant des binaires setuid sur disque. Cet exploit fait quelque chose de fondamentalement différent : il corrompt du code exécutable en direct en mémoire via le mécanisme de cache de pages du noyau.

Exploits publiésCet exploit
CibleFichiers de données (/etc/passwd, /usr/bin/su)Code exécutable (section .text de libc)
MécanismeContenu de fichier analysé par les programmesPages de code exécutées directement par le CPU
PortéeFichier uniqueTOUS les processus mappant libc
Modification disqueOui (contenu du fichier modifié)Non (uniquement le cache de pages en mémoire)
DétectionSurveillance de l'intégrité des fichiersInvisible aux vérifications du système de fichiers

Comment ça fonctionne

L'aperçu du cache de pages

Lorsque Linux mappe une bibliothèque partagée avec MAP_PRIVATE, il ne copie pas immédiatement les pages du fichier. Au lieu de cela, les entrées de table de pages du processus pointent directement vers les pages physiques du cache de pages. La copie n'a lieu qu'à l'écriture (copie sur écriture). Pour les pages de code (.text), les processus n'y écrivent jamais — elles restent donc partagées avec le cache de pages pour toujours.

root@kitploit:~
Processus A (bash)   Processus B (su)    Cache de pages (libc)
  ┌──────┐            ┌──────┐            ┌──────────┐
  │ PTE  │───────────>│      │            │ exit() : │
  │      │            │ PTE  │───────────>│ endbr64  │
  └──────┘            └──────┘            │ push rax │
    MAP_PRIVATE         MAP_PRIVATE       │ ...      │
    (page propre)       (page propre)    └──────────┘
                                               ↑
                                    Copy Fail écrit ici !

CVE-2026-31431 nous donne une écriture contrôlée de 4 octets dans le cache de pages de n'importe quel fichier lisible. En corrompant les pages de code de libc, nous modifions les instructions que chaque processus exécute.

L'exploit

  1. Écrire le shellcode (39 octets) à l'emplacement de la fonction on_exit() dans le cache de pages de libc — 10 écritures de 4 octets chacune
  2. Patcher exit() pour sauter vers notre shellcode — 1 écriture de 4 octets
  3. Déclenchement : tout programme qui appelle exit() (pratiquement tous les programmes) exécute notre shellcode

Le shellcode effectue setuid(0) → setgid(0) → execve("/bin/sh"), donnant un shell root.

Aperçu de CVE-2026-31431

  • Bogue : Erreur de logique dans crypto/algif_aead.c — l'optimisation en place de 2017 (72548b093ee3) permet à splice() d'alimenter les pages du cache de pages dans le déchiffrement AEAD. Le réarrangement ESN de l'algorithme authencesn écrit 4 octets de brouillon dans la liste scatter source, corrompant le cache de pages du fichier épissé.
  • Primitive : Écriture déterministe de 4 octets dans le cache de pages de n'importe quel fichier lisible
  • Exigences : Aucune — les sockets AF_ALG sont disponibles pour les utilisateurs non privilégiés
  • Correctif : Copie vers un tampon hors place avant l'opération cryptographique (noyau 6.12.85+, 6.15+)

Utilisation

root@kitploit:~
# Compilation
gcc -o exploit exploit.c

# Exécution en tant qu'utilisateur non privilégié
./exploit /lib/x86_64-linux-gnu/libc-2.31.so

# Déclenchement — exécutez n'importe quel programme (il appelle exit())
su -c id
# uid=0(root) gid=0(root) groups=0(root)

Testé sur

  • Noyau : 6.12.79 (Ubuntu/Debian, avant le correctif dans 6.12.85)
  • glibc : 2.31-0ubuntu9.7
  • Résultat : Shell root complet, vérifié par le journal du noyau : process 'id' launched '/bin/sh'

Fichiers

  • exploit.c — Exploit complet avec injection de shellcode
  • copyfail_test.c — Vérification de la primitive (teste l'écriture de 4 octets)

Chronologie

  • 2017 : Optimisation en place introduite (72548b093ee3)
  • 2026-04-29 : CVE-2026-31431 divulguée
  • 2026-04-30 : Correctif publié dans le noyau 6.12.85
  • 2026-05-06 : Cet exploit développé (technique inédite de corruption de code en direct)

Références

  • NVD — CVE-2026-31431
  • Commit du correctif
  • Analyse de Copy Fail (Xint)

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 l'autorisation explicite de tester.

Connexe : Dirty Frag (7 mai 2026)

Dirty Frag a divulgué deux autres variantes d'écriture dans le cache de pages de la même classe de bogues :

  • Chemin ESP (esp4/esp6) : Même puits authencesn que Copy Fail, atteint via IPsec ESP-in-UDP. Nécessite des espaces de noms utilisateur. Écriture de 4 octets.
  • Chemin RxRPC (rxrpc/rxkad) : Déchiffrement en place pcbc(fcrypt) sur page épinglée par splice. Aucun espace de noms nécessaire. Écriture de 8 octets.

La technique de corruption de code en direct de ce dépôt fonctionne avec n'importe laquelle de ces primitives d'écriture dans le cache de pages — remplacez simplement la fonction write4() par le déclencheur ESP ou RxRPC. La technique est indépendante de la primitive.

Télécharger l’outil