Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-31431-CopyFail-Linux-PrivEsc — Une démonstration et une explication de CVE-2026-31431 | Kitploit
Outils/GitHubGitHub/john-popovici/cve-2026-31431-copyfail-linux-privesc
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationApprentissage et ÉducationExploitation de Binaires
GitHubjohn-popovici/cve-2026-31431-copyfail-linux-privesc

CVE-2026-31431-CopyFail-Linux-PrivEsc

Une démonstration et une explication de CVE-2026-31431

Voir le dépôt

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
119il y a 9 joursPas encore vérifié

CVE-2026-31431 CopyFail Élévation de privilèges locale sous Linux

Une démonstration et une explication de CVE-2026-31431, la vulnérabilité d'élévation de privilèges locale Copy Fail du noyau Linux. La vulnérabilité permet d'écraser les données dans le cache de pages de fichiers ouverts avec des permissions de lecture.

Ce dépôt est uniquement à des fins éducatives et illustre la vulnérabilité dans un environnement contrôlé. Les fichiers inclus sont :

├── exploit
│   ├── copy_fail.py            # Exploit personnalisé pouvant cibler n'importe quel fichier avec permissions de lecture
│   ├── original_payload.txt    # Une copie du payload utilisé dans l'exploit original
│   ├── copy_fail_original.py   # Exploit original qui écrase /usr/bin/su
│   └── copy_fail_readable.py   # Exploit original dans un format plus lisible avec une explication du payload
├── README.md
└── Vagrantfile                 # Configuration de la VM Vagrant exécutant Ubuntu 22.04

Introduction

La vulnérabilité, nommée Copy Fail, est présente dans les noyaux Linux de 2017 à 2026 en raison d'un défaut de logique dans algif_aead. Elle a été attribuée CVE-2026-31431 avec un score CVSS de 7.8, ce qui conduit à une évaluation de gravité élevée. L'exploit est déterministe et peut contourner les outils traditionnels de surveillance de l'intégrité des fichiers.

Des preuves de concept ont été publiées dans divers langages, notamment C, Python et Go, mais pour cette démonstration, Python est utilisé et nécessite Python version 3.10 ou supérieure. Cet exploit nécessite une exécution de code locale en tant qu'utilisateur non privilégié et peut être utilisé pour une élévation de privilèges locale.

Les sections ci-dessous sont :

  • Exploitation : Démonstrations de l'exploit et comment il peut être utilisé pour obtenir les privilèges root.
  • Note sur la détection de l'exploitation : Une explication de la raison pour laquelle cet exploit est difficile à détecter avec les outils traditionnels de surveillance de l'intégrité des fichiers.
  • Vulnérabilité : Un lien vers le commit qui a introduit la vulnérabilité et une explication du problème.
  • Correctif : Un lien vers le commit qui a corrigé la vulnérabilité et une explication du correctif.
  • Ressources supplémentaires : Une liste de ressources pour approfondir et des implémentations de l'exploit dans divers langages

Exploitation

Configuration

Assurez-vous que Vagrant et QEMU sont installés. Ensuite, clonez ce dépôt et naviguez vers le répertoire du projet.

vagrant up
vagrant ssh

À l'intérieur de la VM, nous pouvons tester les limites de nos capacités.

id # uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)
su # Le mot de passe root nous est demandé, que nous ne possédons pas

stat /usr/bin/su # Nous avons les permissions de lecture et d'exécution
stat /etc/passwd # Nous avons la permission de lecture
stat /etc/shadow # Nous n'avons aucune permission

Nous sommes évidemment limités dans nos capacités, mais nous pouvons utiliser la vulnérabilité pour élever nos privilèges.

Démonstration d'exploitation 1 : Comprendre l'exploit

Pour comprendre la vulnérabilité, écrasons un fichier factice et voyons ce qui se passe.

echo -e "ABCDE\nF\nG" > dummy.txt
cat dummy.txt

Nous avons un fichier avec trois lignes. La première ligne fait 6 octets (saut de ligne inclus), la deuxième ligne fait 2 octets, et la troisième ligne fait un seul octet. C'est important car l'exploit écrase les données par blocs de 4 octets, et nous complétons le payload pour le remplir.

python3 exploit/copy_fail.py --target dummy.txt --payload "123456"
cat dummy.txt

Nous pouvons voir que nous avons remplacé les 8 premiers octets du fichier par notre payload. Il y a deux caractères présents mais non imprimables. Ouvrez le fichier dans nano pour vérifier. Mais ce n'est pas très excitant, alors passons à l'écriture dans des fichiers pour lesquels nous n'avons pas les permissions d'écriture.

Démonstration d'exploitation 2 : Suppression du mot de passe root

Nous pouvons écraser le contenu de /etc/passwd pour ajouter un utilisateur avec les privilèges root mais sans mot de passe.

cat /etc/passwd

La première ligne contient l'utilisateur root et contient 8 groupes de 4 caractères (saut de ligne inclus). Elle est formatée comme suit root:x:0:0:root:/root:/bin/bash, et les valeurs correspondent au nom d'utilisateur, mot de passe, UID, GID, répertoire personnel, shell.

python3 exploit/copy_fail.py --target /etc/passwd --payload "hackd::0:0:root:/root:/bin/bash
"
cat /etc/passwd

Nous avons ajouté un nouvel utilisateur hackd avec UID 0 et GID 0, ce qui signifie qu'il possède les privilèges root. Le champ mot de passe est vide, nous pouvons donc nous connecter sans mot de passe.

su hackd
id
cat /etc/shadow

Démonstration d'exploitation 3 : Écrasement d'un exécutable

Dans l'exploit original, le binaire /usr/bin/su est écrasé par des instructions pour exécuter un shell, permettant à l'attaquant d'obtenir les privilèges root lors de l'exécution de su. Nous pouvons recréer cet exploit en ciblant /usr/bin/su avec le payload original depuis un fichier. Notez que cela détruit le binaire su dans ce cache de pages.

python3 exploit/copy_fail.py --target /usr/bin/su --payload-file exploit/original_payload.txt

Une fois le payload en place, nous pouvons exécuter su et obtenir les privilèges root. Cela ouvre un shell avec l'identifiant utilisateur 0, qui est généralement l'utilisateur root, mais si la démonstration ci-dessus a été effectuée, ce serait l'utilisateur hackd que nous avons créé. Cet exploit ouvrirait un shell même si l'utilisateur root possède un mot de passe.

su
id

Note sur la détection de l'exploitation

Cet exploit ne modifie pas le fichier sur le disque, mais plutôt l'état du cache de pages. Par conséquent, les outils traditionnels de surveillance de l'intégrité des fichiers qui vérifient les modifications des fichiers sur le disque ne détectent pas cet exploit.

Pour le démontrer, exécutez le(s) exploit(s) ci-dessus, puis après un redémarrage de la VM, vérifiez le contenu du fichier cible.

vagrant halt
vagrant up
vagrant ssh
cat /etc/passwd # Le fichier est inchangé sur le disque

Des règles de détection sont partagées dans des dépôts GitHub communautaires qui tentent de détecter les indicateurs réseau ou les motifs de scripts connus. Ces règles de détection sont basées sur des artefacts de PoC publics, des payloads connus, des fragments de code et des URL.

  • Règles Yara
  • Règles Sigma

Par exemple, ce qui suit détecterait des fragments de code spécifiques liés à un PoC ou des payloads encodés :

Télécharger l’outil