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-detection-defense — Guide de recherche et de détection pour CVE-2026-31431, un contournement basé sur io_uring de la surveillance des appels système. Fournit des règles de détection pour Tetragon, Falco et Wazuh, ainsi que des stratégies de durcissement. | Kitploit
Outils/GitHubGitHub/detect-defenselab/cve-2026-31431-detection-defense
Outils DéfensifsSécurité des ConteneursAnalyse des VulnérabilitésExploitationDétection d'Intrusion
GitHubdetect-defenselab/cve-2026-31431-detection-defense

CVE-2026-31431-detection-defense

Guide de recherche et de détection pour CVE-2026-31431, un contournement basé sur io_uring de la surveillance des appels système. Fournit des règles de détection pour Tetragon, Falco et Wazuh, ainsi que des stratégies de durcissement.

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 →
Voir le dépôt
il y a 3 moisPas encore vérifié
Partager

CVE-2026-31431 : Détection et défense contre le contournement d'io_uring des détections existantes

Auteurs : fz0x00, qiwuSEC

Recherche

Pour CVE-2026-31431 (« Copy Fail »), nous avons démontré des faiblesses systématiques dans les produits de sécurité grand public en combinant trois stratégies de contournement : le chemin d'E/S asynchrone io_uring, la division de processus (fork + SCM_RIGHTS) et la réutilisation de socket. Grâce à des tests empiriques, nous avons prouvé que ces techniques peuvent échapper à pratiquement tous les outils de détection basés sur les appels système.

Constatations clés

1. io_uring contourne pratiquement toutes les détections basées sur les appels système

io_uring soumet des requêtes via des anneaux tampons en mémoire partagée, contournant les points d'entrée traditionnels des appels système. Cela signifie que :

  • auditd / Wazuh / Elastic Security Agent et autres produits dépendant de l'audit des appels système sont totalement aveugles lorsque les attaquants utilisent le chemin io_uring — zéro événement, zéro alerte
  • Les threads de travail io_uring (iou-wrk-XXXXX) exécutent des opérations dans le noyau sans déclencher audit_syscall_entry()
  • Les politiques Seccomp qui bloquent uniquement socket(AF_ALG) peuvent être contournées via IORING_OP_SOCKET — seccomp ne vérifie qu'à l'entrée des appels système, et les opérations io_uring ne passent pas par cette entrée
  • 2. La division de processus brise la corrélation au niveau du PID

    En utilisant fork + SCM_RIGHTS (passage de descripteurs de fichier via socket de domaine Unix), la création de socket et les opérations splice peuvent être placées dans des processus différents :

    • La corrélation same_field(audit.pid) de Wazuh est brisée — PID du socket ≠ PID du splice, la règle CRITIQUE ne se déclenche pas
    • Le suivi des descripteurs de fichier au niveau du processus de libsinsp de Falco est complètement cassé dans les scénarios SCM_RIGHTS

    3. La réutilisation de socket contourne les règles de seuil de comptage

    Le PoC original crée un nouveau socket à chaque itération (produisant 40+ appels socket(AF_ALG)). La réutilisation de socket ne crée qu'un seul socket d'écoute ; la boucle appelle accept() qui ne produit pas de nouveaux événements de socket. Les règles basées sur count >= N sont complètement neutralisées.

    4. La combinaison de variantes la plus difficile à détecter

    root@kitploit:~
    chemin io_uring + splice + /etc/passwd + algorithme authenc + division SCM_RIGHTS + réutilisation de socket
    

    Avec cette combinaison : les outils basés sur les appels système sont totalement aveugles, la corrélation au niveau du processus est brisée, les seuils de comptage échouent. Seule la détection par point de convergence kprobe peut attraper cette combinaison.

    5. La surveillance au niveau LSM peut détecter parfaitement l'exploitation

    __sock_create(family=38) est un point de convergence incontournable pour tous les chemins (appel système et io_uring) — AF_ALG est la seule API crypto en espace utilisateur du noyau Linux. Quelle que soit la façon dont les attaquants varient leur approche, ils doivent créer un socket AF_ALG. La surveillance de cette fonction au niveau LSM offre un rappel de 100 % et n'est affectée par aucune variante.

    Résultats de tests spécifiques aux produits

    ProduitCouche de détectionAppel système traditionnelChemin io_uringDivision multi-processusRéutilisation de socketÉvaluation
    Tetragon (kprobe)Fonction noyau✅✅✅✅Seule couverture complète de la chaîne
    Falco + plugin krsifexit/fentry✅✅✅✅Nécessite krsi pour io_uring ; entrée uniquement
    Falco (modern_ebpf)tracepoint d'appel système✅❌✅✅io_uring complètement invisible
    auditd / Wazuhaudit d'appel système✅❌❌ PID brisé⚠️io_uring aveugle + corrélation PID brisée
    Elastic Security Agentappel système✅❌⚠️⚠️Identique à Wazuh ; dépendant des appels système = aveugle

    Falco nécessite le plugin krsi

    Le pilote modern_ebpf natif de Falco ne capture que le chemin des appels système. Le plugin krsi est requis — il utilise le traçage fexit sur les sorties des fonctions noyau io_socket() et __sys_socket() pour couvrir le chemin io_uring pour la création de socket AF_ALG. Règle de repli recommandée :

    root@kitploit:~
    - rule: AF_ALG Socket Created
      condition: >
        (evt.type = socket and evt.args contains AF_ALG) or
        (evt.type = krsi_socket and krsi.domain = 38)
      output: >
        AF_ALG socket created (source=%evt.type domain=%evt.arg.domain
        krsi_domain=%krsi.domain proc=%proc.name pid=%proc.pid)
      priority: WARNING
      tags: [cve-2026-31431, crypto, container_escape]
    

    L'approche de détection de la règle recommandée : couvre simultanément les événements socket (chemin d'appel système, en utilisant la correspondance de chaîne evt.args contains AF_ALG pour contourner la limitation de type ENUMFLAGS32) et les événements krsi_socket (chemin io_uring, en utilisant la comparaison d'entiers krsi.domain = 38). Pas de seuils de comptage (neutralisés par la réutilisation de socket), pas de dépendance à la corrélation PID (neutralisée par la division multi-processus).

    Remarque : Les trois couches de défense de la règle communautaire ThreatBear sont toutes contournables — incompatibilité de type ENUMFLAGS32 (evt.arg[0]=38 toujours faux), la réutilisation de socket neutralise le seuil de comptage (count=1 < 40), la division multi-processus brise la corrélation PID. Voir Analyse du contournement de règle.

    Wazuh / Elastic Security Agent ne peuvent pas détecter l'exploitation io_uring

    Wazuh repose entièrement sur les événements d'audit des appels système d'auditd. Les opérations io_uring ne passent pas par l'entrée des appels système, donc auditd produit zéro événement et les 7 règles Wazuh échouent. Il en va de même pour Elastic Security Agent — les produits dépendants de l'entrée des appels système sont structurellement aveugles au chemin io_uring. Voir Analyse des limitations de Wazuh.

    Démonstration de contournement

    Le répertoire bypass_demo/ contient des descriptions conceptuelles des approches de contournement de détection. Le code PoC réel est réservé à un usage interne et n'est pas distribué publiquement.

    Index de documentation

    Théorie

    DocumentContenu
    VULNERABILITY.mdCause racine — superposition de trois modifications du noyau, chaîne d'attaque en 9 étapes, caractéristiques d'écriture du cache de pages
    EXPLOIT_VARIANTS.md6 dimensions de variantes d'exploitation — chemin d'E/S × soumission de données × fichier cible × algorithme AEAD × division de processus × réutilisation de socket
    DETECTION_THEORY.mdThéorie de détection — points de convergence vs. divergence, architecture de détection en 4 couches, corrélation temporelle multi-signaux

    Solutions de détection

    DocumentContenu
    detection/tetragon.mdRecommandé — Tetragon kprobe, 5 sondes couvrant traditionnel + io_uring, seule détection complète de la chaîne
    detection/falco.mdGuide de configuration Falco 0.40.0 + krsi 0.1.0, internes de krsi, dépannage
    detection/wazuh.mdWazuh + auditd trois limitations majeures : cécité io_uring, rupture de corrélation PID, invisibilité du cache de pages
    detection/rule_bypass.mdPrincipes de contournement de la règle ThreatBear, vérification empirique anti-contournement de la règle recommandée

    Durcissement

    DocumentContenu
    defense/HARDENING.mdModèle de défense en 3 couches : configuration noyau → seccomp → espaces de noms utilisateur ; analyse de sécurité Docker 29.4.2
    Télécharger l’outil