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
copy-fail-CVE-2026-31431 — Exploit d’élévation de privilèges locale pour CVE-2026-31431, une vulnérabilité de réécriture du cache de pages AF_ALG + splice dans le noyau Linux. Inclut un PoC, un script de détection BPFtrace et un environnement de test QEMU pour la recherche en sécurité autorisée. | Kitploit
Outils/GitHubGitHub/astounds/copy-fail-cve-2026-31431
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationApprentissage et ÉducationExploitation de BinairesLabs et Pratique
GitHubastounds/copy-fail-cve-2026-31431

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

copy-fail-CVE-2026-31431

Exploit d’élévation de privilèges locale pour CVE-2026-31431, une vulnérabilité de réécriture du cache de pages AF_ALG + splice dans le noyau Linux. Inclut un PoC, un script de détection BPFtrace et un environnement de test QEMU pour la recherche en sécurité autorisée.

Voir le dépôt
il y a 3 moisPas encore vérifié

CVE-2026-31431 — Copy Fail

Élévation de privilèges locale dans le noyau Linux via AF_ALG + écrasement du cache de pages

CVE CVSS License

Uniquement pour la recherche en sécurité autorisée, les tests d'intrusion et les fins pédagogiques. Ne pas utiliser contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite explicite de test.

Analyse technique


Table des matières

  • Description
  • Détails de la vulnérabilité
  • Structure du dépôt
  • Démarrage rapide
  • Détection
  • Prérequis
  • Atténuation
  • Environnement de test (optionnel)
  • Références
  • Licence

Description

CVE-2026-31431 est une vulnérabilité d'élévation de privilèges locale (LPE) dans le noyau Linux. Un utilisateur local non privilégié peut obtenir un accès root en combinant l'interface de socket AF_ALG avec splice() pour effectuer une écriture authentifiée directement dans une page du cache de pages appartenant à un binaire setuid.

L'exploit écrase le binaire su dans le cache de pages sans modifier l'inode sur disque, contournant les mécanismes d'intégrité qui reposent uniquement sur les métadonnées de fichiers ou les sommes de contrôle au niveau des blocs.


Détails de la vulnérabilité

Environnements affectés


Structure du dépôt

root@kitploit:~
.
├── exploit.py    # PoC — écrasement du cache de pages et élévation de privilèges
├── detect.bt     # Script BPFtrace pour la détection en temps réel
├── run-vm.sh     # Automatisation de l'environnement de test QEMU (optionnel)
├── PAYLOAD.md    # Analyse de l'encodage de la charge utile (hex → zlib → ELF → shellcode)
└── LICENSE

Démarrage rapide

Exécutez exploit.py en tant qu'utilisateur local non privilégié sur tout système vulnérable — aucun sudo requis :

root@kitploit:~
python3 exploit.py

Le script effectue les étapes suivantes :

  1. Vérifie la prise en charge de AF_ALG (algif_aead) par le noyau et localise le binaire su.
  2. Sélectionne et décompresse la charge utile adaptée à l'architecture.
  3. Ouvre le binaire su comme descripteur de fichier brut et écrase ses pages du cache de pages via AF_ALG + sendfile.
  4. Teste l'élévation de privilèges. En cas de succès, ouvre un shell root.

Architectures prises en charge :


Détection

Surveillez les tentatives d'exploitation en temps réel avec detect.bt. Nécessite root :

root@kitploit:~
sudo bpftrace detect.bt
# ou
doas bpftrace detect.bt

Le script suit trois indicateurs par PID à l'aide d'un masque de bits dans @suspect[pid] :

Une alerte se déclenche lorsque les trois bits sont définis (@suspect[pid] == 0x7) sur le même PID.


Prérequis

exploit.py

  • Python 3.6+
  • Noyau Linux avec le module AF_ALG/algif_aead chargé
  • Compte utilisateur local non privilégié (root n'est pas requis)

detect.bt

  • bpftrace ≥ 0.12
  • Privilèges root (requis pour le traçage BPF)
root@kitploit:~
# Ubuntu/Debian
sudo apt install bpftrace

# RHEL/CentOS/Fedora
sudo dnf install bpftrace

# Amazon Linux
sudo yum install bpftrace

# SUSE
sudo zypper install bpftrace

# Alpine
sudo apk add bpftrace

Atténuation

1. Correctif (recommandé)

Mettez à jour le paquet du noyau de votre distribution vers une version incluant le commit principal a664bf3d603d, qui annule l'optimisation sur place de algif_aead de 2017 afin que les pages du cache de pages ne puissent plus se retrouver dans la liste de diffusion de destination en écriture. La plupart des grandes distributions fournissent désormais ce correctif.

2. Désactiver algif_aead (en attendant un correctif)

blacklist peut être contourné avec un modprobe algif_aead explicite. La directive install .../bin/false remplace entièrement la commande d'installation, faisant échouer chaque tentative de chargement :

root@kitploit:~
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead 2>/dev/null || true

Ce que cela casse — presque rien

Les sous-systèmes de la ligne « Non » utilisent directement l'API cryptographique du noyau — ils ne passent jamais par AF_ALG. Les performances retombent sur les bibliothèques cryptographiques utilisateur normales, ce que presque tout le reste utilise déjà.

Pour vérifier si quoi que ce soit sur votre système utilise activement AF_ALG avant de le désactiver :

root@kitploit:~
lsof | grep AF_ALG
ss -xa | grep alg

3. Bloquer via seccomp (conteneurs, sandbox, CI)

Refusez la création de socket(AF_ALG, ...) pour les charges de travail non fiables, quel que soit l'état du correctif. Ajoutez AF_ALG (famille 38) à votre liste de refus seccomp, ou utilisez une politique AppArmor/SELinux qui restreint les appels socket pour les processus non privilégiés.

4. Surveiller avec detect.bt

Déployez le script de détection inclus sur tout hôte qui ne peut pas être corrigé ou verrouillé immédiatement. Il alertera sur tout processus qui exécute la primitive d'exploitation complète en trois étapes.


Environnement de test (optionnel)

run-vm.sh automatise la création d'une machine virtuelle QEMU Ubuntu 24.04 pour tester dans un environnement contrôlé. exploit.py et detect.bt s'exécutent directement sur tout hôte vulnérable — QEMU n'est pas requis.

Prérequis de l'hôte

DépendanceNotes
qemu-system-x86_64 + KVMVoir les commandes d'installation ci-dessous
wget ou curlTéléchargement de l'image cloud
cloud-image-utils

Installer QEMU

root@kitploit:~
# Ubuntu/Debian
sudo apt install qemu-system-x86 cloud-image-utils wget

# Fedora/RHEL
sudo dnf install qemu-system-x86 wget

# Arch
sudo pacman -Sy qemu

# Alpine
sudo apk add qemu-system-x86 qemu-ui-gtk wget

Exécuter

root@kitploit:~
sh run-vm.sh

Menu interactif

root@kitploit:~
1. Démarrer/Créer la VM
2. Se connecter via SSH
3. Téléverser des fichiers vers la VM  (exploit.py, detect.bt)
4. Exécuter l'exploit dans la VM
5. Exécuter detect.bt dans la VM
6. Vérifier l'état de la VM
7. Arrêter la VM
8. Nettoyer les fichiers de la VM
0. Quitter

Identifiants de la VM

ChampValeur
Utilisateurubuntu
Mot de passecve123
Port SSH2222

Références

  • Analyse technique — xint.io
  • Analyse de l'encodage de la charge utile — décomposition hex → zlib → ELF → shellcode
  • crypto/af_alg.c — source du noyau
  • mm/splice.c — source du noyau

Licence

Ce projet est sous licence GNU General Public License v3.0 ou ultérieure. Voir LICENSE pour le texte complet.

Avertissement : Ce dépôt est fourni uniquement pour la recherche en sécurité autorisée, les tests d'intrusion et les fins pédagogiques. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive ou de dommages causés par ce logiciel.

Télécharger l’outil
ChampValeur
ID CVECVE-2026-31431
TypeÉlévation de privilèges locale (LPE)
Score CVSS v3.17.8 Élevé — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (source : kernel.org)
Sous-systèmes du noyaucrypto/af_alg.c, mm/splice.c
Vecteur d'attaqueLocal — compte utilisateur non privilégié requis
Cause racinealgif_aead accepte sendfile() sur un socket AEAD sans appliquer la sémantique copy-on-write sur la page du cache de pages mappée avant que splice() ne termine le transfert
DistributionVersion du noyauArch
Ubuntu 24.04 LTS6.17.0-1007-awsx86_64
Amazon Linux 20236.18.8-9.213.amzn2023x86_64
RHEL 10.16.12.0-124.45.1.el10_1x86_64
SUSE 166.12.0-160000.9-defaultx86_64
Raspberry Pi OS (Pi 5)6.12.75+rpt-rpi-2712aarch64
ArchitectureVariantes
x86_64—
aarch64—
riscv64—
ppc64le—
armarmv5l, armv6l, armv7l
x86 32 bitsi386, i486, i586, i686
MIPS 64 bitsmips64, mips64el
LoongArchloong64, loongarch64
s390x—
BitAppel systèmeIndicateur
0x1socket(AF_ALG, SOCK_SEQPACKET)Socket AF_ALG créé
0x2setsockopt(SOL_ALG, ...)Opération cryptographique configurée
0x4sendmsg(MSG_MORE) + splice()Écrasement du cache de pages tenté
Affecté ?Sous-système/Cas d'utilisation
Nondm-crypt/LUKS, kTLS, IPsec/XFRM, TLS dans le noyau
NonBuilds par défaut d'OpenSSL, GnuTLS, NSS
NonSSH, cryptographie du trousseau de clés du noyau
Peut-êtreOpenSSL avec le moteur afalg explicitement activé
Peut-êtreChemins de déchargement cryptographique embarqués ou applications qui lient directement les sockets aead/skcipher/hash
Génération de l'image seed (Docker peut remplacer sur les hôtes non-Debian)