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 — Exploit et détecteur pour une élévation de privilèges locale du noyau Linux (CVE-2026-31431) qui corrompt le cache de pages pour obtenir les droits root, avec des recommandations d'atténuation. | Kitploit
Outils/GitHubGitHub/kaleth4/cve-2026-31431
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationTests d'Intrusion
GitHubkaleth4/cve-2026-31431

CVE-2026-31431

Exploit et détecteur pour une élévation de privilèges locale du noyau Linux (CVE-2026-31431) qui corrompt le cache de pages pour obtenir les droits root, avec des recommandations d'atténuation.

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

🚨 CVE-2026-31431 : Copy Fail

Une faille critique de 9 ans dans le noyau Linux permettant d'obtenir un accès root en quelques secondes


📋 Résumé Exécutif

AttributDétails
CVECVE-2026-31431
SurnomCopy Fail
TypeÉlévation de privilèges locale (LPE)
CVSS7.8 (High)
Découvert parTheori (Xint Code)
Divulgation29 avril 2026
ComposantSous-système algif_aead du noyau Linux

⚡ Pourquoi est-ce si dangereux ?

🎯 Vitesse

  • Exploit instantané : < 1 seconde pour obtenir root
  • Script Python de seulement 732 octets

👻 Discrétion Absolue

  • Modifie uniquement la mémoire RAM (page cache), pas le disque
  • Les outils d'intégrité des fichiers ne le détectent pas
  • Au redémarrage, la trace disparaît (analyse forensique compromise)

🌍 Portée Massive

  • Affecte pratiquement toutes les distributions modernes
  • Noyaux de v4.14 (2017) à v7.0-rc
  • Vulnérable pendant 9 ans sans être détecté

☁️ Risque Cloud/Kubernetes

  • Permet l'évasion de conteneurs vers le nœud principal
  • Le cache de pages est partagé entre l'hôte et les conteneurs
  • Impact critique dans les environnements multi-tenant

🔍 Détails Techniques

Cause Racine

Défaut dans l'optimisation de l'« opération sur place » (in-place) introduite en 2017 (commit 72548b093ee3). Elle permet à un utilisateur local d'effectuer une écriture contrôlée de 4 octets directement dans le cache de pages du noyau.

Mécanisme d'Exploitation

  1. L'attaquant utilise l'interface AF_ALG pour accéder aux algorithmes cryptographiques du noyau
  2. Il corrompt la version en mémoire des binaires setuid (/usr/bin/su) ou des fichiers sensibles (/etc/passwd)
  3. En exécutant le binaire corrompu, il obtient un shell root

Pourquoi est-il passé inaperçu

C'est un bug logique de conception, pas un débordement de mémoire. Il nécessitait une analyse approfondie du sous-système cryptographique pour être détecté.


📊 Systèmes Affectés

✅ Confirmés

  • Ubuntu : 20.04, 22.04, 24.04 LTS
  • RHEL/AlmaLinux/Rocky Linux : Toutes les versions modernes
  • Debian : Toutes les versions avec noyau v4.14+
  • Amazon Linux 2023
  • SUSE : Versions récentes

🛡️ Plan de Remédiation

1️⃣ Solution Définitive : Mettre à jour le noyau

root@kitploit:~
# Ubuntu/Debian
sudo apt update
sudo apt upgrade
sudo reboot

# RHEL/AlmaLinux/Rocky
sudo dnf update kernel
sudo reboot

# Vérifier la version du noyau
uname -r

⚠️ Le redémarrage est obligatoire pour activer le nouveau noyau.


2️⃣ Atténuation d'Urgence (sans redémarrage immédiat)

Pour Ubuntu/Debian :

root@kitploit:~
# Désactiver le chargement du module vulnérable
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/copyfail_mitigation.conf

# Décharger le module s'il est déjà en cours d'utilisation
sudo rmmod algif_aead

Pour RHEL/AlmaLinux :

root@kitploit:~
# Le module est généralement intégré au noyau
# Ajouter un paramètre de démarrage pour le désactiver
sudo grubby --update-kernel=ALL --args="initcall_blacklist=algif_aead_init"

# Redémarrer pour appliquer les changements
sudo reboot

3️⃣ Nettoyer les Caches (si vous suspectez une exploitation antérieure)

root@kitploit:~
# Purger le cache de pages à chaud
sudo sysctl -w vm.drop_caches=3

⚠️ Remarque : Cela ne remplace pas le correctif. C'est seulement une mesure complémentaire.


📅 Chronologie des Événements

DateÉvénement
29 avrilDivulgation publique par Theori
1er mai

📦 État des Correctifs


🔐 Vérifier votre Système

Votre noyau est-il vulnérable ?

root@kitploit:~
# Obtenir la version du noyau
uname -r

# Vulnérable si :
# - v4.14 à v7.0-rc (publié entre 2017 et avril 2026)
# - Contient le commit 72548b093ee3

# Vérifier si le module algif_aead est chargé
lsmod | grep algif_aead

# S'il apparaît dans la liste, votre système est vulnérable

🧬 Analyse de Sécurité : Le Facteur IA

Le plus disruptif : Découvert par l'IA en 1 heure

Une IA a identifié cette faille qui est passée inaperçue aux développeurs pendant 9 ans. Cela marque un avant et un après :

  • 🤖 Les machines peuvent auditer le code du noyau plus rapidement que les humains
  • 🔍 En trouvant automatiquement des failles logiques complexes
  • ⚠️ Implications pour l'avenir de la recherche sur les 0-day

Quick start

root@kitploit:~
# 1. Detect
python3 prueba.py
#   exit 0 = not vulnerable, 2 = vulnerable, 1 = test error

# 2. Exploit (interactive — su will prompt for your own password)
python3 exploit.py --shell

Detector usage

root@kitploit:~
python3 prueba.py

Ce qu'il fait :

  1. Confirme que AF_ALG et l'algorithme authencesn(hmac(sha256),cbc(aes)) sont accessibles depuis un processus sans privilèges.

  2. Crée un fichier sentinelle de 4 Kio dans un répertoire temporaire et remplit le cache de pages.

  3. Envoie 8 octets d'AAD en ligne via sendmsg+cmsg avec seqno_lo défini sur le marqueur PWND, puis copie 32 octets de la page du cache de pages de la sentinelle dans le socket d'opération AF_ALG via os.splice().

  4. Appelle recv() pour initier le déchiffrement. La vérification d'authentification échoue avec EBADMSG ; l'écriture temporaire s'exécute quand même.

  5. Relit le fichier (cache de pages, pas le disque) et recherche le marqueur.

Classes de sortie :

  • Condición previa no cumplida : AF_ALG ou authencesn indisponibles. Sortie 0.
  • VULNERABLE a CVE-2026-31431 : le marqueur PWND a été inséré dans la page modifiée.

Sortie 2.

  • Caché de página MODIFICADA mediante una ruta de inserción AEAD in situ : écriture dans la page, mais le marqueur n'a pas été inséré à la position attendue. À traiter comme vulnérable. Sortie 2.
  • Caché de página intacta : patché. Sortie 0.

Le détecteur ne modifie jamais /usr/bin/su, /etc/passwd ni aucun autre fichier hors du répertoire temporaire qu'il crée, et ce fichier est supprimé à la fin.

Sortie. ## Utilisation du LPE

root@kitploit:~
python3 exploit_cve_2026_31431.py # Patch uniquement, imprime les étapes suivantes
python3 exploit_cve_2026_31431.py --shell # Patch et exécute `su <usuario>`

Fonction :

  1. Recherche la ligne UID de l'utilisateur en cours d'exécution dans /etc/passwd et trouve le

décalage d'octets du champ UID de 4 caractères.

  1. Exécute un write4 sur ce décalage, en remplaçant l'UID par

0000.

  1. Appelle pwd.getpwnam(usuario) pour confirmer que libc signale désormais l'UID 0.
  2. Avec --shell, exécute execvp("su", ["su", usuario]). Saisissez votre propre mot de passe. PAM valide contre /etc/shadow (non modifié), puis

setuid(getpwnam(user).pw_uid) est défini sur 0.

Prérequis

  • L'utilisateur en cours d'exécution a un UID à 4 chiffres (1000–9999). Les UID à 1 à 3 chiffres

nécessitent des écritures multi-tirs ; étendez write4 en conséquence.

  • Aucun démon de cache NSS (nscd, sssd, systemd-userdbd) ne masque les lectures de /etc/passwd. Si getpwnam renvoie toujours l'UID réel après l'application du patch, redémarrez ou ignorez le cache, ou sélectionnez un utilisateur différent.

  • La page /etc/passwd doit rester dans le cache entre l'application du patch et l'exécution de su. En pratique, c'est fiable sur tout système avec une pression mémoire normale.

Réversion

Le fichier /etc/passwd sur disque reste inchangé.

L'exécution à sec (exploit_cve_2026_31431.py sans --shell) supprime automatiquement la page corrompue à la sortie via POSIX_FADV_DONTNEED, donc les recherches UID → nom reviennent à la normale immédiatement.

Après avoir utilisé --shell**, la page reste corrompue jusqu'à ce qu'elle soit effacée. Tant qu'elle est corrompue, toute opération qui résout UID 1000 → nom (par exemple, ls, gestionnaires de fichiers, vérifications de propriété scp/sftp) échouera ou affichera des identifiants numériques. Pour l'effacer :

root@kitploit:~
# Sans privilèges : demande la suppression du cache de pages de /etc/passwd :
python3 -c "import os; fd=os.open('/etc/passwd', os.O_RDONLY); \
os.posix_fadvise(fd, 0, 0, os.POSIX_FADV_DONTNEED); os.close(fd)"

# Depuis la console root :
echo 3 > /proc/sys/vm/drop_caches

Un redémarrage l'efface également.

Comment fonctionne write4

root@kitploit:~
sendmsg([AAD de 8 octets], cmsg=[ALG_SET_OP=DECRYPT, ALG_SET_IV, ALG_SET_AEAD_ASSOCLEN=8],
flags=MSG_MORE)
splice(target_fd, pipe_w, 32, offset_src=file_offset)
splice(pipe_r, op_fd, 32)
recv(op_fd) # EBADMSG ; l'écriture temporaire a déjà été effectuée

Les 4 octets des positions 4 à 7 de l'AAD (seqno_lo) sont écrits par authencesn dans la liste de dispersion de destination, qui dans ce chemin de code est la page du cache de pages que nous avons extraite de target_fd. Le décalage d'atterrissage dans la page correspond au offset_src que nous avons passé à splice().

Atténuation

Jusqu'à ce que le noyau patché arrive sur votre distribution :

root@kitploit:~
sudo tee /etc/modprobe.d/disable-algif-aead.conf <<<'install algif_aead /bin/false'
sudo rmmod algif_aead 2>/dev/null

Après application du patch, test_cve_2026_31431.py devrait afficher le message « Precondición no cumplida » et se terminer avec le code 0.

La correction originale ramène les opérations AEAD sur place à des opérations hors place, en maintenant les pages du cache de pages hors des listes de dispersion modifiables.

📚 Références Officielles

  • CVE-2026-31431 - NVD
  • Copy Fail Patches - AlmaLinux
  • Sysdig Security Research
  • CISA Alert

⚠️ Recommandations Finales

  1. Priorité Critique : Mettez à jour votre noyau avant le 15 mai 2026 (mandat de la CISA)
  2. Si vous ne pouvez pas redémarrer : Appliquez l'atténuation temporaire en désactivant algif_aead
  3. En Cloud/Kubernetes : Vérifiez que vos nœuds sont patchés immédiatement
  4. Surveillance : Recherchez les tentatives de chargement du module algif_aead dans les journaux d'audit

Dernière mise à jour : 3 mai 2026
Statut : 🔴 CRITIQUE - Action immédiate requise

Télécharger l’outil
Premières tentatives d'exploitation active détectées
2 maiCISA ordonne aux agences fédérales américaines de patcher avant le 15 mai
3 maiCorrectifs disponibles sur Ubuntu, RHEL, AlmaLinux, Debian
DistributionÉtatRéférence
Ubuntu✅ PatchéUSN-8226-1 (20.04, 22.04, 24.04)
RHEL/AlmaLinux/Rocky✅ DisponibleDepuis le 1er mai
Debian✅ Dans les dépôts de sécuritéMise à jour disponible
Android⏳ ProchainementBulletin de sécurité de juin 2026