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
Detections-CVE-2026-31431 — Règles de détection, signatures YARA, règles auditd/Wazuh et modèles d'événements MISP pour la vulnérabilité LPE du noyau Linux CVE-2026-31431 (Copy Fail). Inclut des IoC, des étapes d'atténuation et une analyse de l'exploit. | Kitploit
Outils/GitHubGitHub/insomnisec/detections-cve-2026-31431
Gestion des Indicateurs de Compromission (IOC)Escalade de PrivilègesAnalyse des VulnérabilitésExploitationAnalyse ForensiqueRenseignement sur les MenacesDétection d'IntrusionApprentissage et ÉducationRéponse aux Incidents

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 →
GitHubinsomnisec/detections-cve-2026-31431

Detections-CVE-2026-31431

Règles de détection, signatures YARA, règles auditd/Wazuh et modèles d'événements MISP pour la vulnérabilité LPE du noyau Linux CVE-2026-31431 (Copy Fail). Inclut des IoC, des étapes d'atténuation et une analyse de l'exploit.

Voir le dépôt
211il y a 4 moisPas encore vérifié
Partager

DÉPLACEMENT VERS : https://github.com/insomnisec/public_cve_detections

POUR UNE MEILLEURE GESTION À LONG TERME DES PUBLICATIONS DE DÉTECTION

CE DÉPÔT SERA SUPPRIMÉ EN JUIN 2026

VEUILLEZ UTILISER L'AUTRE DÉPÔT À L'AVENIR

CVE-2026-31431 "Copy Fail" — Package de Détection et Réponse

Publié : 2026-04-30
CVSSv3 : 7.8 (Élevée)
Type : Élévation de Privilèges Locale (LPE)
Sous-système : Noyau Linux algif_aead / authencesn template cryptographique
Affecté : Noyaux Linux 4.14 – 6.18.21 (pratiquement toutes les distributions depuis 2017)
Références :

  • Analyse de Xint/Theori
  • PoC officiel
  • Divulgation oss-security
  • copy.fail

Table des matières

  1. Résumé de la vulnérabilité
  2. Fonctionnement de l'exploit
  3. Limitations de la détection
  4. Mesures d'atténuation immédiates
  5. Règle YARA
  6. Règles Auditd
  7. Règles Wazuh
  8. Modèle d'événement MISP
  9. Correctifs et remédiation
  10. Références des IoCs clés

Résumé de la vulnérabilité

CVE-2026-31431 est un défaut logique introduit dans le noyau 4.14 (2017) à l'intersection de trois modifications indépendantes :

  1. Le template authencesn (ajouté en 2011 pour le support IPsec ESN) écrit 4 octets de données temporaires au-delà de la limite de son tampon de sortie.
  2. AF_ALG a obtenu le support AEAD en 2015, permettant à l'espace utilisateur de soumettre des données via splice() à partir de fichiers mis en cache en pages.
  3. En 2017, algif_aead.c a été optimisé pour fonctionner en place (req->src == req->dst), plaçant des pages de cache en direct dans un scatterlist inscriptible.

Résultat : un utilisateur non privilégié peut écrire exactement 4 octets contrôlés par l'attaquant dans la copie du cache de pages du noyau de tout fichier lisible — y compris les binaires setuid et /etc/passwd — sans toucher au fichier sur disque. Le PoC fonctionnel est un script Python de 732 octets. Pas de condition de concurrence. Pas de décalages par distribution. Fiable sur Ubuntu, RHEL, Amazon Linux et SUSE.


Fonctionnement de l'exploit```

Attacker opens AF_ALG socket (family 38, type 5) └─ Binds to "authencesn(hmac(sha256),cbc(aes))" └─ Sets SOL_ALG (279) options including key and authsize └─ Accepts a connection socket

Attacker opens target file (e.g., /etc/passwd) read-only └─ Uses splice() to feed page-cache pages into the AEAD socket's RX buffer └─ Sends crafted AAD via sendmsg() — bytes 4–7 of AAD = attacker-controlled write value

authencesn performs in-place decryption: └─ scatterwalk_map_and_copy writes seqno_lo into the chained page-cache page └─ recvmsg() returns an error (HMAC fails — expected), but the write already happened

Page-cache now contains attacker-modified copy of the file └─ Kernel executes from page-cache, not disk └─ On-disk file is UNCHANGED — file integrity tools see nothing

Le PoC cible `/etc/passwd` : il trouve l'offset du champ UID de l'utilisateur en cours et le remplace par `0000`, puis invoque `su` pour obtenir un shell root.

---

## Limitations de la détection

> **Lisez cette section avant de déployer les règles ci-dessous.**

Cet exploit présente deux propriétés qui limitent considérablement la couverture de la détection :

**1. L'écriture va dans le cache de pages, pas dans le système de fichiers.**
Tout outil de détection qui surveille les événements du système de fichiers — `inotify`, `fanotify`, AIDE, Tripwire, les surveillances de chemins auditd — **ne** verra **pas** la modification. Le fichier sur disque n'est jamais écrit. Cela signifie que les indicateurs `-p w` (écriture) dans les surveillances de chemins auditd pour `/usr/bin/su` ou `/etc/passwd` ne captureront pas l'écriture réelle de l'exploitation.

**2. Le mécanisme utilise des interfaces noyau légitimes.**
Les sockets `AF_ALG`, `splice()` et `authencesn` ont tous des utilisations légitimes (IPsec, auto-tests du noyau, E/S de type sendfile). La détection doit se concentrer sur la *combinaison* de ces primitives plutôt que sur une seule isolément, et il faut s'attendre à des faux positifs sur les systèmes exécutant IPsec ou effectuant des tests cryptographiques du noyau.

**Ce que la détection PEUT attraper :**
- L'appel système `socket(AF_ALG, SOCK_SEQPACKET, 0)`
- L'appel système `splice()` corrélé avec ce qui précède, en particulier près de l'accès à un binaire setuid
- Le script PoC lui-même (via YARA)
- La chaîne d'algorithme spécifique `authencesn(hmac(sha256),cbc(aes))` dans la mémoire du processus ou les fichiers de script

**Ce que la détection NE PEUT PAS attraper :**
- L'écriture réelle dans le cache de pages (en mémoire, aucun événement du système de fichiers)
- L'utilisation post-exploitation de l'entrée du cache de pages modifiée (ressemble à un appel normal `su` ou `passwd`)
- Les variantes qui évitent Python ou la chaîne d'algorithme spécifique

---

## Atténuation immédiate

Avant de déployer des règles de détection, appliquez cette atténuation sur tout hôte non corrigé :```bash
# Disable algif_aead kernel module — blocks the exploit primitive entirely
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif-aead.conf
sudo rmmod algif_aead 2>/dev/null || true

Vérifiez que l'atténuation est active à l'aide du détecteur officiel :```bash

Exit 0 = not vulnerable / mitigated

Exit 2 = VULNERABLE

python3 test_cve_2026_31431.py

> **Note :** La commande `rmmod` échouera si le module n'est pas actuellement chargé ; c'est acceptable. La configuration `modprobe.d` empêche les chargements futurs. Cette atténuation n'a aucun impact sur les charges de travail standard TLS, SSH ou de chiffrement de système de fichiers — elle n'affecte que IPsec avec numéros de séquence étendus utilisant le modèle `authencesn`, ce qui est rare en dehors des passerelles VPN dédiées.

---

## Règle YARA

Enregistrer sous `cve_2026_31431.yar`

> **Périmètre d'analyse :** Cette règle est conçue pour analyser des fichiers de script Python sur disque ou extraits de vidages mémoire. Elle correspondra au PoC connu et à des variantes proches. Elle NE détectera PAS l'activité d'exploitation au niveau des appels système — utilisez les règles auditd/Wazuh pour cela.```yara
rule CVE_2026_31431_CopyFail_PoC_HighConfidence {
    meta:
        description     = "High-confidence match: CVE-2026-31431 Copy Fail PoC or close variant"
        author          = "Detection Engineering"
        reference       = "https://xint.io/blog/copy-fail-linux-distributions"
        cve             = "CVE-2026-31431"
        date            = "2026-04-30"
        severity        = "High"
        cvss            = "7.8"

    strings:
        // Algorithm string unique to this exploit path — very high fidelity
        $alg_full      = "authencesn(hmac(sha256),cbc(aes))" ascii

        // Specific socket call signature from PoC: AF_ALG=38, SOCK_SEQPACKET=5
        $socket_call   = "socket(38,5,0)" ascii

        // SOL_ALG socket option (decimal 279)
        $solalg        = "setsockopt(279" ascii

        // Hex key/iv payload written via setsockopt in PoC
        $key_payload   = "0800010000000010" ascii

        // splice() usage in context of AEAD operations
        $splice        = "splice(" ascii

        // Target indicators from PoC (page-cache corruption targets)
        $target_passwd = "/etc/passwd" ascii
        $target_su     = "/usr/bin/su" ascii

        // AF_ALG aead bind strings
        $aead_bind     = "\"aead\"" ascii
Télécharger l’outil