SOC Prime Bias: High

26 Oct 2026 16:41 UTC

CVE-2026-111497 : Flaw critique Node2Shell dans le décodeur Brotli de Node.js

Author Photo
SOC Prime Team linkedin icon Suivre
CVE-2026-111497 : Flaw critique Node2Shell dans le décodeur Brotli de Node.js
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Node2Shell est une vulnérabilité critique (CVE-2026-111497) affectant le décodeur Brotli inclus avec Node.js et causée par une écriture hors limites. Les attaquants peuvent exploiter la faille en fournissant des flux compressés malformés aux services qui traitent les données Brotli, ce qui peut potentiellement entraîner un déni de service, une divulgation de mémoire ou une exécution de code à distance. La vulnérabilité pose un risque particulier pour les services utilisant Express 5 ou un middleware qui effectue automatiquement la décompression Brotli.

Enquête

L’équipe de recherche sur les menaces de Sysdig a analysé la vulnérabilité et a signalé qu’un PoC public a émergé quelques heures après la publication du correctif. Des recherches menées par Imperva et Vercel ont démontré que l’exécution de code est possible sur des architectures spécifiques, y compris Linux arm64. L’enquête a montré que l’exploitabilité dépend de la capacité d’une application ou de ses bibliothèques, telles que body-parser, à traiter des flux Brotli contrôlés par des attaquants.

Atténuation

La principale mesure d’atténuation consiste à mettre à jour Node.js vers les versions 22.23.4, 24.22.1 ou 26.12.1, et à mettre à jour Bun vers la version 1.4.4 ou ultérieure. Les organisations devraient également désactiver la décompression des requêtes lorsque cela est pratique, y compris en configurant inflate: false dans body-parser. Déployer des règles WAF pour rejeter les requêtes Content-Encoding: br non approuvées et exécuter les services sous des comptes non privilégiés offre des couches de défense supplémentaires.

Réponse

Si une chaîne d’exploitation potentielle est détectée, telle qu’un crash de processus Node.js suivi d’une exécution de programme inattendue, les équipes de sécurité devraient immédiatement isoler la charge de travail affectée. Surveillez les activités post-exploitation, y compris les shells interactifs, les téléchargements de logiciels malveillants non autorisés, le cryptominage ou le vol de secrets et de jetons cloud. La correction de tous les services vulnérables accessibles devrait rester la priorité absolue.

Flux d’attaque

Nous mettons encore à jour cette partie.

Détections

Processus enfants NodeJS suspects [Windows] (via cmdline)

Équipe SOC Prime
25 octobre 2026

Shell suspect via serveur Web [Linux] (via process_creation)

Équipe SOC Prime
25 octobre 2026

Processus enfants NodeJS suspects [Linux] (via cmdline)

Équipe SOC Prime
25 octobre 2026

Détection d’un crash de processus Node.js suivi par une exécution de programme en place – Exploitation Node2Shell [Création de processus Linux]

Règles SOC Prime AI
25 octobre 2026

Exécution de simulation

  • Narration de l’attaque & Commandes : L’adversaire cible une application Web exécutant Node.js. Il envoie une charge utile compressée en Brotli malveillante qui déclenche une erreur de corruption de mémoire, provoquant le crash du processus node . Immédiatement après le crash, l’attaquant utilise le flux d’exécution détourné pour lancer un /bin/bash shell pour établir la persistance et commencer la reconnaissance locale. Cette séquence d’un processus node événement suivi par /bin/bash l’exécution est conçue pour correspondre à la logique de crash sélection and logique d'exécution suspecte sélection de la règle de détection.

  • Script de test de régression :

    #!/bin/bash
    # Simulation du schéma d'exploitation de type Node2Shell
    
    echo "[+] Démarrage de la simulation Node2Shell..."
    
    # 1. Simuler un processus Node.js qui 'crashe' ou est arrêté brusquement
    # Dans un scénario réel, c'est un crash. Ici nous simulons la télémétrie 
    # d'un processus node étant invoqué/traité.
    node -e "process.exit(1)"
    echo "[+] Processus Node.js 'crashé' (Code de sortie 1)."
    
    # 2. Simuler l'exécution immédiate d'un shell suspect
    # Cela imite la charge utile déclenchant le shell après le crash.
    /bin/bash -c "echo 'Exploitation réussie : Shell lancé'"
    
    echo "[+] Simulation terminée. Vérifiez SIEM pour la détection."
  • Commandes de nettoyage :

    # Aucun fichier persistant n'a été créé par cette simulation.
    # Assurez-vous simplement qu'aucun processus bash malveillant ne s'exécute.
    pkill -f "Exploitation réussie"