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 — Analyse - POC - Atténuation | Kitploit
Outils/GitHubGitHub/sebastian294/cve-2026-31431
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationApprentissage et ÉducationExploitation de BinairesLabs et Pratique
GitHubsebastian294/cve-2026-31431

cve-2026-31431

Analyse - POC - Atténuation

Voir le dépôt
1il 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 : laboratoire de recherche LPE sur le noyau Linux

Uniquement à des fins pédagogiques. Ne pas utiliser sur des systèmes sans autorisation explicite.


Table des matières

  • Description de la vulnérabilité
  • Composants concernés
  • Comment ça fonctionne
  • Configuration du lab (Docker)
  • PoC — Démonstration
  • Mitigation
  • Références

Description de la vulnérabilité

ChampValeur
CVECVE-2026-31431
AliasCopy Fail
CVSS7,8 (Élevé)
TypeÉlévation de privilèges locale (LPE)
Noyau concerné2017 – 2026 (commit 72548b093ee3 et suivants)
Correctif upstreamcommit a664bf3d603d (annulation de 2017)
Divulgation29 avril 2026 (Theori / Xint Code)

Copy Fail est un bug logique déterministe (ne nécessite pas de race conditions) dans le sous-système cryptographique du noyau Linux. Il permet à un utilisateur sans privilèges d'écrire 4 octets contrôlés dans le page cache de n'importe quel fichier lisible du système, y compris des binaires setuid comme su ou sudo.

Pourquoi est-ce particulièrement grave ?

Contrairement aux vulnérabilités précédentes similaires :


Composants concernés

root@kitploit:~
Linux kernel — crypto/authencesn.c
  └── algif_aead (module AF_ALG)
        └── optimisation en place (commit 72548b093ee3, 2017)
              └── écriture scratch AEAD → franchit la limite du scatterlist
                    └── écrit 4 octets dans le page cache d'un fichier externe

Distributions concernées : Ubuntu, Debian, RHEL, Amazon Linux, SUSE, Fedora, Arch, AlmaLinux — toute distribution avec un noyau ≥ 2017.


Comment ça fonctionne

Cause racine

En 2017, une optimisation a été introduite qui fait pointer req->src et req->dst vers le même scatterlist combiné. Cela entraîne que les pages du page cache (provenant de splice()) sont chaînées directement dans le scatterlist de destination inscriptible.

Chaîne d'exploitation

root@kitploit:~
1. Ouvrir un socket AF_ALG avec l'algorithme authencesn
2. Utiliser splice() pour alimenter les pages du page cache du binaire cible
   vers le socket AF_ALG (ex : /usr/bin/sudo)
3. Exécuter une opération de décryptage AEAD
4. authencesn utilise le buffer de destination comme zone de scratch →
   écrit seqno_hi (4 octets contrôlés) HORS de la sortie légitime,
   franchissant la limite du scatterlist
5. Les 4 octets atterrissent dans la page du page cache du binaire cible
6. Le fichier sur disque ne change PAS → les contrôles d'intégrité ne détectent rien
7. Le binaire modifié en mémoire exécute le payload → root

Pourquoi c'est furtif

L'écriture contourne le chemin d'écriture VFS normal. Le fichier sur disque reste intact. Des outils comme sha256sum, aide, tripwire ou inotify ne détectent pas le changement car ils opèrent sur le fichier sur disque ou sur l'inode, pas sur le page cache en mémoire.


Configuration du lab (Docker)

Le lab utilise un noyau vulnérable pour démontrer la corruption du page cache. Dans les environnements Docker, l'élévation de privilèges complète dépend de la configuration de l'hôte (noyau partagé).

root@kitploit:~
# Cloner le dépôt

cd cve-2026-31431

# Construire l'image vulnérable
docker build -t copyfail-lab -f docker/Dockerfile.vulnerable .

# Exécuter le lab
docker run --rm -it \
  --cap-add=NET_ADMIN \
  --security-opt seccomp=unconfined \
  copyfail-lab bash

# Dans le conteneur :
cd /lab
python3 exploit/poc.py

Prérequis

  • Docker ≥ 20.x
  • Noyau de l'hôte : Ubuntu/Debian avec noyau 5.x ou 6.x non corrigé (voir tableau dans docs/)
  • Python 3.10+ dans le conteneur (pour os.splice)

PoC — Démonstration

Voir exploit/poc.py et exploit/README.md.

Le PoC démontre :

  1. Corruption du page cache (vérifiable)
  2. Écriture de 4 octets contrôlés dans le fichier cible
  3. LPE complet : dépend du noyau de l'hôte (voir notes)

Mitigation

Voir mitigation/README.md pour des instructions détaillées.

TL;DR — Mitigation immédiate (sans redémarrage) :

root@kitploit:~
# Désactiver le module concerné
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo modprobe -r algif_aead 2>/dev/null || true

Correctif définitif : Mettre à jour le noyau vers une version corrigée (postérieure à a664bf3d603d).


Structure du dépôt

root@kitploit:~
cve-2026-31431/
├── README.md                    ← ce fichier
├── docs/
│   ├── technical-analysis.md    ← analyse technique approfondie
│   └── affected-kernels.md      ← tableau des versions concernées/corrigées
├── exploit/
│   ├── README.md                ← documentation du PoC
│   └── poc.py                   ← proof of concept (Python 3.10+)
├── mitigation/
│   ├── README.md                ← guide de mitigation
│   ├── disable-algif.conf       ← config modprobe
│   └── check-vulnerable.sh      ← script de détection
├── docker/
│   ├── Dockerfile.vulnerable    ← lab vulnérable
│   └── Dockerfile.patched       ← lab avec mitigation appliquée
└── scripts/
    └── setup-lab.sh             ← automatisation du lab

Chronologie de divulgation


Références

  • Xint Code — writeup officiel de Copy Fail
  • copy.fail — site de l'advisory
  • GitHub officiel — theori-io/copy-fail-CVE-2026-31431
  • NVD — CVE-2026-31431
  • Ubuntu Security Advisory
  • Microsoft Security Blog
  • Unit 42 — Analyse Palo Alto
  • Commit du correctif upstream a664bf3d603d

Télécharger l’outil
VulnTypeNécessite une race ?Portable ?Taille de l'exploit
Dirty Cow (CVE-2016-5195)Course CoWOuiPartielle~Ko
Dirty Pipe (CVE-2022-0847)pipe bufferNonLimitée~Ko
Copy Fail (CVE-2026-31431)LogiqueNonTotale732 octets
DateÉvénement
2017Le commit 72548b093ee3 introduit le bug dans le noyau
~2025Theori/Xint Code commence l'analyse du sous-système crypto
28 avr. 2026Coordination avec les distributeurs
29 avr. 2026Divulgation publique + PoC publié
1er mai 2026Noyaux corrigés disponibles dans les dépôts de production
1er mai 2026Ajout au catalogue CISA KEV