Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Outils/GitHubGitHub/vasyapokemon/cve-2026-31431
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationAnalyse de MalwareCriminalistique NumériqueDétection d'IntrusionArticles et RechercheApprentissage et ÉducationRéponse aux IncidentsRessources OrganiséesLabs et Pratique
24il y a 5 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
GitHubvasyapokemon/cve-2026-31431

cve-2026-31431

Outil de recherche et de détection pour la LPE du noyau Linux CVE-2026-31431, incluant l'analyse d'exploits, des règles YARA, la détection auditd/Falco, un guide de correctif et un environnement de laboratoire.

Voir le dépôt

CVE-2026-31431 — « Copy Fail » : Élévation de privilèges locale dans le noyau Linux algif_aead

CISA KEV | CVSS 7.8 ÉLEVÉ | Affecte les noyaux Linux 4.14 – début 2026 (~9 ans)


Table des matières

  1. Résumé exécutif
  2. Évaluation des risques
  3. Analyse technique approfondie
  4. Méthodologie d'attaque — Équipe rouge
  5. Détection et réponse aux incidents — Équipe bleue
  6. Correctifs et remédiation
  7. Environnement de laboratoire
  8. Références

1. Résumé exécutif

CVE-2026-31431, surnommée « Copy Fail », est une vulnérabilité d'élévation de privilèges locale (LPE) de gravité élevée dans le sous-système cryptographique du noyau Linux. Un utilisateur local à faibles privilèges peut passer à root en quelques secondes sur tout système non corrigé.

AttributValeur
CVECVE-2026-31431
SurnomCopy Fail
CVSS v3.17.8 ÉLEVÉ
Vecteur d'attaqueLocal
Privilèges requisFaibles
Interaction utilisateurAucune
Composantcrypto/algif_aead.c — modèle authencesn
Introduit2017 (commit 72548b093ee3)
Divulgué2026
Années silencieuses~9 ans
CISA KEVOui
PoC publicOui (script Python autonome de 732 octets)

Impact commercial

  • Accès root sur tout serveur Linux, VM, instance cloud ou hôte de conteneurs non corrigé
  • Évasion de conteneur depuis les pods Kubernetes — le cache de pages est partagé avec le noyau hôte
  • Aucune empreinte sur disque — l'exploitation ne laisse aucune modification de fichier, aucune page sale, aucune trace d'audit via les outils standards d'intégrité des fichiers (Tripwire, AIDE)
  • Affecte Red Hat, Ubuntu, Debian, SUSE, Amazon Linux et pratiquement toutes les grandes distributions exécutant des noyaux à partir de 2017

Action immédiate recommandée

  1. Atténuation temporaire (à déployer maintenant, aucun redémarrage requis si le module n'est pas chargé) : ```bash echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf sudo rmmod algif_aead 2>/dev/null || true
  2. Correctif permanent : Mettez à jour les paquets du noyau via le gestionnaire de paquets de votre distribution, puis redémarrez.
  3. Vérification : Exécutez detection/check_vulnerable.sh avant et après la remédiation.

2. Évaluation des risques

Chaîne de vecteur CVSS 3.1```

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

| Métrique | Valeur | Justification |
|--------|-------|-----------|
| Vecteur d'attaque | **Local** | Nécessite un accès shell (SSH, exec de conteneur, physique) |
| Complexité de l'attaque | **Faible** | Fiable, entièrement automatisé — aucune condition de course requise |
| Privilèges requis | **Faibles** | N'importe quel compte utilisateur non privilégié |
| Interaction utilisateur | **Aucune** | Aucune interaction de la victime nécessaire |
| Confidentialité | **Élevée** | Compromission totale du système |
| Intégrité | **Élevée** | Compromission totale du système |
| Disponibilité | **Élevée** | Compromission totale du système |

### Paysage des menaces

| Facteur | Évaluation |
|--------|-----------|
| Disponibilité du PoC | Public, armé, Python autonome de 732 octets |
| Fiabilité de l'exploit | Élevée — fonctionne sur les distributions testées sans modification |
| Difficulté de détection | Élevée — aucune écriture sur disque, aucune page sale |
| Compétence requise de l'attaquant | Faible — script kiddie avec un PoC public |
| CISA KEV | Ajouté en 2026 — surveillé activement |
| Microsoft Defender | Signalé comme faisant l'objet d'une enquête active |

### Environnements concernés

| Environnement | Risque |
|-------------|------|
| Serveurs Linux sur métal nu | Critique |
| Machines virtuelles Linux (cloud ou sur site) | Critique |
| Nœuds Kubernetes | Critique (permet également l'évasion de conteneur) |
| Hôtes Docker | Critique |
| Hébergement mutualisé / multi-locataire | Critique |
| WSL2 / Linux sur Windows | À évaluer selon la version du noyau |

---

## 3. Plongée technique approfondie

### 3.1 Contexte : AF_ALG et AEAD

Le noyau Linux expose les opérations cryptographiques aux espaces utilisateur via les **sockets AF_ALG** (`AF_ALG = 38`). Cette interface (`algif_aead`) permet aux applications non privilégiées d'invoquer les accélérateurs matériels cryptographiques du noyau sans nécessiter de code en mode noyau.

**AEAD** (Authenticated Encryption with Associated Data) — les algorithmes comme AES-GCM et ChaCha20-Poly1305 sont largement utilisés pour TLS, le chiffrement de disque et les protocoles VPN. Le template vulnérable est `authencesn` — une composition AEAD utilisant `hmac(sha256)` + `cbc(aes)` avec prise en charge du numéro de séquence étendu (ESN), couramment utilisée dans IPsec.

### 3.2 Cause racine

En 2017, le commit `72548b093ee3` a introduit l'**opération AEAD en place** dans `algif_aead` comme optimisation de performance — permettant au moteur cryptographique de lire et d'écrire dans le même tampon. Cela était défectueux :```
The bug chain:

1. Caller binds AF_ALG socket to:
      authencesn(hmac(sha256),cbc(aes))

2. Caller sends a decryption request via sendmsg() with specific flags

3. Caller uses splice() to feed PAGE CACHE PAGES from an open file
   descriptor directly into the socket's scatterlist

4. The authencesn template, during ESN header processing, uses the
   OUTPUT BUFFER as scratch space — writing 4 bytes past the
   expected output boundary

5. Because the scatterlist contains page cache pages (not private
   copies), this scratch write lands DIRECTLY IN THE PAGE CACHE

6. Page cache is shared kernel-wide — all processes reading the
   same file now see the modified bytes

Key insight: splice() is zero-copy — it hands page cache references
to the socket. The in-place "optimization" then writes INTO those
pages. No dirty bit is set because the write goes through the crypto
engine, not the normal write path.

3.3 La primitive d'écriture

La vulnérabilité permet une écriture contrôlée de 4 octets dans le cache de pages de tout fichier que l'attaquant peut ouvrir en lecture :

PropriétéValeur
Taille d'écriture4 octets
Contrôle du décalageOui — contrôlé par l'attaquant via le décalage de splice
CibleCache de pages de tout fichier lisible
Marquage de page saleAucun
Modification sur disqueAucune
Mise à jour de l'horodatageAucune
Entrée du journal noyauAucune (sauf si auditd est configuré)

L'écriture est répétable — l'exploit boucle l'écriture de 4 octets pour corriger des séquences de code plus longues.

3.4 Chaîne d'exploitation```

[1] Open /usr/bin/su (or any setuid-root binary) for reading ↓ [2] Map a copy to find target instruction bytes (e.g., UID check, execve path, security gate) ↓ [3] Compute exact page cache offset of target bytes ↓ [4] Set up AF_ALG socket → authencesn(hmac(sha256),cbc(aes)) ↓ [5] splice() the target binary's page cache into the socket ↓ [6] Trigger decryption → authencesn scratch write patches the target bytes in page cache (4 bytes per iteration) ↓ [7] Repeat for each 4-byte patch needed ↓ [8] Execute /usr/bin/su → runs root-owned setuid binary but now with attacker-controlled code in page cache ↓ [9] Root shell

### 3.5 Pourquoi les défenses standard échouent
Télécharger l’outil