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
Outils/GitHubGitHub/0xfuffm3/cve-2026-31431-copyfail
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationTests d'IntrusionApprentissage et ÉducationÉvasion de ConteneurExploitation de BinairesLabs et Pratique

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
GitHub
0xfuffm3/cve-2026-31431-copyfail

CVE-2026-31431-CopyFail

Exploit de preuve de concept pour CVE-2026-31431 (Copy Fail), une LPE du noyau Linux via la corruption du cache de pages algif_aead, avec détection, laboratoire et conseils d'atténuation.

Voir le dépôt
6il y a 3 moisPas encore vérifié
root@kitploit:~
                     ██████╗ ██████╗ ██████╗ ██╗   ██╗    ███████╗ █████╗ ██╗██╗
                    ██╔════╝██╔═══██╗██╔══██╗╚██╗ ██╔╝    ██╔════╝██╔══██╗██║██║
                    ██║     ██║   ██║██████╔╝ ╚████╔╝     █████╗  ███████║██║██║
                    ██║     ██║   ██║██╔═══╝   ╚██╔╝      ██╔══╝  ██╔══██║██║██║
                         ╚██████╗╚██████╔╝██║        ██║       ██║     ██║  ██║██║███████╗
                          ╚═════╝ ╚═════╝ ╚═╝        ╚═╝       ╚═╝     ╚═╝  ╚═╝╚═╝╚══════╝

CVE-2026-31431 — « Copy Fail »

Escalade de privilèges locale dans le noyau Linux via corruption du cache de pages algif_aead


CVE CVSS Kernel License Status


⚠️ UTILISATION AUTORISÉE UNIQUEMENT — Ce dépôt est strictement destiné aux testeurs d'intrusion, chercheurs en sécurité et défenseurs agissant sous autorisation légale. Toute utilisation abusive constitue une infraction pénale.


📖 Table des matières


🔍 Qu'est-ce que Copy Fail ?

Copy Fail est une vulnérabilité d'escalade de privilèges locale (LPE) divulguée le 29 avril 2026, affectant pratiquement toutes les distributions Linux majeures exécutant des noyaux depuis 2017.

root@kitploit:~
Utilisateur non privilégié  ──►  AF_ALG + splice()  ──►  Écriture de 4 octets dans le cache de pages  ──►  ROOT

Faits clés en un coup d'œil

Pourquoi c'est dangereux

  • 🕵️ Furtif — La modification réside uniquement dans le cache de pages ; le fichier sur disque n'est jamais modifié. Les analyses forensiques standard du disque ne le détecteront pas.
  • ⚡ Fiable — Défaut logique déterministe, pas une condition de concurrence. L'exploitation est cohérente d'un environnement à l'autre.
  • 🌐 Universel — Affecte Ubuntu, RHEL, Amazon Linux, SUSE, Debian — toutes les distributions majeures depuis 2017.
  • ☸️ Impact cloud/K8s — Peut faciliter l'évasion de conteneurs dans les charges de travail Kubernetes et les exécuteurs CI/CD.
  • 🤖 Découvert par IA — Trouvé par le système d'IA de Xint Code avec environ 1 heure de scan et une seule invite opérateur.

🔬 Analyse technique approfondie

Cause racine

La vulnérabilité provient d'une optimisation in-place défectueuse introduite en 2017 (commit 72548b093ee3) dans le module algif_aead de l'API crypto espace utilisateur du noyau Linux (AF_ALG).

root@kitploit:~
AF_ALG (API crypto espace utilisateur)
└── module algif_aead
    └── template authencesn  ◄── VULNÉRABLE
        └── optimisation in-place (2017)
            └── req->src == req->dst  ◄── pages de splice() chaînées dans le scatterlist dst inscriptible

Flux d'attaque

root@kitploit:~
Étape 1 : Ouvrir une socket AF_ALG AEAD
        socket(AF_ALG, SOCK_SEQPACKET, 0)

Étape 2 : Envoyer des pages splice() référençant le fichier cible
        (pages du cache de pages d'un binaire privilégié, par exemple /usr/bin/sudo)

Étape 3 : Déclencher l'écriture scratch authencesn
        authencesn utilise le tampon dst comme zone de travail →
        écrit 4 octets contrôlés au-delà de la zone de sortie légitime

Étape 4 : L'entrée du cache de pages pour le fichier cible est maintenant corrompue
        (fichier disque intact — seule la copie en mémoire est modifiée)

Étape 5 : Exécuter le binaire modifié → ROOT

Pourquoi le cache de pages ?

Le cache de pages du noyau Linux stocke les copies en mémoire des fichiers. Lorsqu'un fichier est lu, ses pages sont mises en cache. L'appel système splice() peut référencer directement ces pages mises en cache. En insérant des pages du cache de pages dans le scatterlist AF_ALG AEAD, l'écriture scratch authencesn atterrit à l'intérieur de ces pages mises en cache, patchant ainsi efficacement la copie en mémoire de tout fichier lisible — y compris les binaires privilégiés comme sudo, pkexec ou passwd.

Le correctif

Le correctif en amont annule l'optimisation défectueuse de 2017 :

root@kitploit:~
# Corrigé dans le commit : a664bf3d603d
git show a664bf3d603d

🖥️ Systèmes affectés

Versions du noyau Linux

Matrice des distributions


📁 Structure du dépôt

root@kitploit:~
CVE-2026-31431-CopyFail/
│
├── 📄 README.md                          ← Vous êtes ici
├── 📄 LICENSE                            ← Licence recherche/éducation
├── 📄 DISCLAIMER.md                      ← Politique d'utilisation légale et éthique
├── 📄 CHANGELOG.md                       ← Historique des versions
│
├── 📂 docs/
│   ├── vulnerability-analysis.md         ← Analyse approfondie : cause racine et mécanismes
│   ├── exploitation-walkthrough.md       ← Méthodologie pas à pas
│   ├── affected-kernels.md               ← Matrice complète des versions noyau/distributions
│   ├── detection.md                      ← Couverture défenseur, Tenable, Wazuh
│   └── references.md                     ← Tous les CVE, blogs, avis
│
├── 📂 exploit/
│   ├── README.md                         ← Utilisation, prérequis, distributions testées
│   ├── copyfail.py                       ← PoC de référence (éducatif)
│   ├── trigger.c                         ← Déclencheur C pour AF_ALG + splice()
│   └── variants/
│       ├── ubuntu.py                     ← Variante spécifique Ubuntu
│       ├── rhel.py                       ← Variante RHEL/CentOS
│       └── amazon_linux.py              ← Variante Amazon Linux
│
├── 📂 detection/
│   ├── yara/
│   │   └── copyfail.yar                  ← Règle YARA pour artefacts d'exploit
│   ├── sigma/
│   │   └── copyfail_lpe.yml              ← Règle Sigma pour SIEM/SOC
│   └── scripts/
│       ├── check_vulnerable.sh           ← Vérification rapide de la vulnérabilité du noyau
│       └── detect_algif_aead.sh         ← Vérifie si le module est chargé/actif
│
├── 📂 mitigation/
│   ├── README.md                         ← Aperçu des mesures d'atténuation
│   ├── disable_algif_aead.sh             ← Désactive le module noyau affecté
│   ├── patch-notes.md                    ← Détails du correctif en amont
│   └── kubernetes-hardening.md          ← Durcissement K8s / conteneurs
│
├── 📂 lab/
│   ├── Vagrantfile                       ← VM vulnérable reproductible
│   ├── setup.sh                          ← Script d'amorçage du laboratoire
│   └── docker/
│       └── Dockerfile                    ← Conteneur Ubuntu vulnérable
│
├── 📂 reports/
│   ├── pentest-report-template.md        ← Modèle de rapport prêt pour le client
│   └── sample-finding.md                ← Exemple de rédaction de constatation
│
└── 📂 assets/
    ├── demo.gif                          ← (Optionnel) démo terminal
    └── diagrams/
        └── page-cache-write.png         ← Schéma du flux d'attaque

🧪 Configuration du laboratoire

Testez toujours dans un environnement isolé et autorisé. N'exécutez jamais d'exploits sur des systèmes de production.

Option A — VM Vagrant (Recommandé)

root@kitploit:~
# Cloner le dépôt
git clone https://github.com/0xFuffM3/CVE-2026-31431-CopyFail.git
cd CVE-2026-31431-CopyFail

# Démarrer la VM vulnérable du laboratoire
cd lab/
vagrant up

# Se connecter en SSH au laboratoire
vagrant ssh

# Vérifier la version du noyau (devrait être vulnérable)
uname -r

Option B — Conteneur Docker

root@kitploit:~
cd lab/docker/

# Construire l'image du conteneur vulnérable
docker build -t copyfail-lab .

# Exécuter avec les privilèges nécessaires pour l'interaction avec le noyau
docker run --rm -it --privileged copyfail-lab /bin/bash

Vérifier si votre système est vulnérable

root@kitploit:~
# Exécuter le script de vérification rapide
chmod +x detection/scripts/check_vulnerable.sh
./detection/scripts/check_vulnerable.sh

Sortie attendue sur un système vulnérable :

root@kitploit:~
[!] Version du noyau : 5.15.0-91-generic
[!] Module algif_aead : CHARGÉ
[✗] Le système semble VULNÉRABLE à CVE-2026-31431 (Copy Fail)
[*] Action recommandée : Appliquer la mise à jour du noyau ou désactiver algif_aead

Sortie attendue sur un système corrigé :

root@kitploit:~
[✓] Version du noyau : 6.1.132
[✓] Le système semble CORRIGÉ contre CVE-2026-31431 (Copy Fail)

💥 Utilisation de l'exploit

Nécessite : Accès local en tant qu'utilisateur non privilégié sur un système vulnérable.

Prérequis

root@kitploit:~
# Python 3.6+
python3 --version

# Modules noyau requis présents
lsmod | grep algif_aead

# Vérifier que le binaire cible est lisible
ls -la /usr/bin/sudo

Exécution du PoC

root@kitploit:~
cd exploit/

# Vérifier le niveau de privilège actuel
id
# uid=1000(user) gid=1000(user) groups=1000(user)

# Exécuter le PoC Copy Fail
python3 copyfail.py

# Vérifier l'escalade de privilèges
id
# uid=0(root) gid=0(root) groups=0(root)

Flux de travail pour test d'intrusion

root@kitploit:~
1. Énumérer la version du noyau
   └─► uname -r / cat /proc/version

2. Vérifier si algif_aead est chargé
   └─► lsmod | grep algif_aead

3. Confirmer le point d'accès à faible privilège
   └─► id / whoami

4. Exécuter le PoC Copy Fail
   └─► python3 exploit/copyfail.py

5. Vérifier l'accès root
   └─► id && cat /etc/shadow

6. Documenter les preuves
   └─► Capture d'écran + enregistrer version du noyau, distribution, hash de l'exploit

7. Appliquer les mesures d'atténuation (après test)
   └─► sudo bash mitigation/disable_algif_aead.sh

8. Inclure dans le rapport de test d'intrusion
   └─► Utiliser reports/pentest-report-template.md

🔎 Détection

Règle YARA

root@kitploit:~
// detection/yara/copyfail.yar
rule CopyFail_CVE_2026_31431 {
    meta:
        description = "Détecte les artefacts de l'exploit Copy Fail (CVE-2026-31431)"
        author      = "0xFuffM3"
        date        = "2026-04-30"
        reference   = "https://copy.fail"
    strings:
        $py1 = "algif_aead" ascii
        $py2 = "AF_ALG" ascii
        $py3 = "splice" ascii
        $py4 = "page_cache" ascii
        $py5 = "authencesn" ascii
    condition:
        3 of them
}

Lancer le scan YARA :

root@kitploit:~
yara detection/yara/copyfail.yar /tmp/ -r

Règle Sigma (SIEM)

root@kitploit:~
# detection/sigma/copyfail_lpe.yml
title: Exécution de l'exploit LPE Copy Fail (CVE-2026-31431)
status: stable
logsource:
    category: process_creation
    product: linux
detection:
    selection:
        CommandLine|contains:
            - 'AF_ALG'
            - 'algif_aead'
            - 'authencesn'
    condition: selection
falsepositives:
    - Tests légitimes d'API crypto
level: high

Script de détection rapide

root@kitploit:~
chmod +x detection/scripts/detect_algif_aead.sh
./detection/scripts/detect_algif_aead.sh

Couverture des outils de sécurité


🛡️ Atténuation

Option 1 — Appliquer le correctif du noyau (Recommandé)

root@kitploit:~
# Ubuntu / Debian
sudo apt-get update && sudo apt-get upgrade linux-image-generic

# RHEL / CentOS
sudo yum update kernel

# Amazon Linux
sudo yum update kernel

# Après la mise à jour, redémarrer
sudo reboot

Option 2 — Désactiver le module algif_aead (Intérimaire)

root@kitploit:~
# Exécuter le script d'atténuation
chmod +x mitigation/disable_algif_aead.sh
sudo bash mitigation/disable_algif_aead.sh

Ce que fait le script :

root@kitploit:~
echo "install algif_aead /bin/false" > /etc/modprobe.d/disable-algif.conf
rmmod algif_aead 2>/dev/null || echo "[*] Module actuellement non chargé"
echo "[✓] algif_aead désactivé. Redémarrer pour confirmer la persistance."

Option 3 — Durcissement Kubernetes

Voir mitigation/kubernetes-hardening.md pour :

  • Restreindre la création de sockets AF_ALG dans les politiques de sécurité des pods
  • Profil Seccomp pour bloquer l'appel système socket(AF_ALG, ...)
  • Mise à jour prioritaire des nœuds Kubernetes et des exécuteurs CI/CD

📝 Rapport de test d'intrusion

Un modèle de rapport client prêt à l'emploi se trouve dans reports/pentest-report-template.md.

Résumé d'exemple de constatation

root@kitploit:~
Constatation : Escalade de privilèges locale via Copy Fail (CVE-2026-31431)
Gravité :     ÉLEVÉE (CVSS 7.8)
Hôte :        10.10.10.55 (ubuntu-prod-01)
Noyau :       5.15.0-91-generic

Preuves :
  - Shell non privilégié (uid=1000) élevé à root (uid=0)
  - Module noyau algif_aead confirmé chargé
  - Aucun artefact disque — seulement le cache de pages

Recommandation :
  1. Appliquer immédiatement le correctif du noyau du fournisseur
  2. Transition : désactiver le module algif_aead
  3. Examiner les nœuds Kubernetes et les exécuteurs CI/CD

⚖️ Aspects juridiques et éthiques

Lisez ceci avant d'utiliser quoi que ce soit dans ce dépôt.

Ce dépôt est publié uniquement à des fins de recherche en sécurité légitime, de tests d'intrusion autorisés et de sécurité défensive.

  • ✅ Autorisé : Tester sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite
  • ✅ Autorisé : Recherche en sécurité dans des environnements de laboratoire isolés
  • ✅ Autorisé : Utilisation défensive — détection, correction, durcissement
  • ❌ Interdit : Tester sur des systèmes sans autorisation écrite
  • ❌ Interdit : Déployer des exploits sur des systèmes de production
  • ❌ Interdit : Toute utilisation violant la loi locale, nationale ou internationale

L'utilisation non autorisée de ce matériel peut violer le Computer Fraud and Abuse Act (CFAA), la Directive UE 2013/40/UE, la Loi indienne sur les technologies de l'information de 2000, et les lois équivalentes dans votre juridiction.

Les auteurs déclinent toute responsabilité en cas d'utilisation abusive. Voir DISCLAIMER.md pour l'avis juridique complet.


📚 Références


🤝 Contribution

Les chercheurs en sécurité sont invités à contribuer :

  1. Forker le dépôt
  2. Créer une branche de fonctionnalité : git checkout -b feat/votre-contribution
  3. Commiter vos modifications : git commit -m "Ajout : règle de détection pour X"
  4. Pousser et ouvrir une Pull Request

Veuillez respecter les normes de divulgation responsable. N'incluez pas de code d'exploit armé et prêt pour la production ciblant des systèmes corrigés.


Fait pour la communauté de la sécurité — utilisez avec responsabilité.

Follow

Télécharger l’outil
#SectionDescription
1Qu'est-ce que Copy Fail ?Résumé de la vulnérabilité
2Analyse technique approfondieAnalyse de la cause racine
3Systèmes affectésMatrice distributions et noyaux
4Structure du dépôtOrganisation des fichiers
5Configuration du laboratoireReproduction sécurisée
6Utilisation de l'exploitFlux de travail pour test d'intrusion
7DétectionYARA, Sigma, scripts
8AtténuationCorrectif et durcissement
9Rapport de test d'intrusionModèles de rapport
10Aspects juridiques et éthiquesAvertissement
11RéférencesCVE, avis, blogs
PropriétéDétail
ID CVECVE-2026-31431
SurnomCopy Fail
CVSS v3.17.8 (ÉLEVÉ)
Vecteur d'attaqueLocal
Privilèges requisFaible (tout utilisateur non privilégié)
Interaction utilisateurAucune
DécouvreurXint Code (Theori)
Divulgué29 avril 2026
Taille de l'exploit732 octets (PoC Python)
État du correctif✅ Disponible — revenir au commit a664bf3d603d
Branche du noyauAffecté ?Version corrigée
4.9.x (LTS)✅ Oui4.9.340+
5.4.x (LTS)✅ Oui5.4.295+
5.10.x (LTS)✅ Oui5.10.239+
5.15.x (LTS)✅ Oui5.15.185+
6.1.x (LTS)✅ Oui6.1.132+
6.6.x (LTS)✅ Oui6.6.83+
6.12.x (LTS)✅ Oui6.12.19+
< 4.9 (avant 2017)❌ NonN/A — optimisation absente
DistributionVersions affectéesCorrigé ?Avis
Ubuntu< 26.04 (toutes versions)✅ CorrigéUSN
Ubuntu 26.04 (Resolute)❌ Non affecté——
RHEL / CentOS7, 8, 9✅ CorrigéRHSA-2026
Amazon Linux2, 2023✅ CorrigéALAS
SUSE / openSUSETous affectés✅ CorrigéSUSE-SU
DebianBullseye, Bookworm✅ CorrigéDSA
CloudLinux8, 9✅ CorrigéAvis
OutilSupport de détection
Microsoft Defender (MDVM)✅ Oui
Tenable Nessus✅ Oui
Qualys✅ Oui
Wazuh✅ Via règle Sigma personnalisée
Palo Alto Cortex XDR✅ Oui
CrowdStrike Falcon✅ Oui
SourceLien
Divulgation originale (Xint/Theori)copy.fail
Analyse technique de Xint Codexint.io/blog/copy-fail
Entrée NVDnvd.nist.gov
Blog sécurité Microsoftmicrosoft.com/security/blog
Avis Ubuntuubuntu.com/blog
Avis CERT-EUcert.europa.eu
FAQ Tenabletenable.com/blog
Palo Alto Unit 42unit42.paloaltonetworks.com
Avis CloudLinuxblog.cloudlinux.com
Analyse Bugcrowdbugcrowd.com/blog
Correctif du noyau Linuxkernel.org — commit a664bf3d603d