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
Brotli-Node.js-CVE-2026-111497-Broccoli2Shell-Node2Shell-HTTP2Shell- — Avis et analyse pour CVE-2026-111497, une écriture hors limites du décodeur Brotli accessible via la décompression HTTP de Node.js, avec cause racine, diff de correctif, règles de détection et mesures d'atténuation. | Kitploit
Outils/GitHubGitHub/certbn/brotli-node.js-cve-2026-111497-broccoli2shell-node2shell-http2shell-
Criminalistique MémoireAnalyse des VulnérabilitésExploitationSécurité WebRenseignement sur les MenacesRéponse aux Incidents
GitHubcertbn/brotli-node.js-cve-2026-111497-broccoli2shell-node2shell-http2shell-

Brotli-Node.js-CVE-2026-111497-Broccoli2Shell-Node2Shell-HTTP2Shell-

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

Avis et analyse pour CVE-2026-111497, une écriture hors limites du décodeur Brotli accessible via la décompression HTTP de Node.js, avec cause racine, diff de correctif, règles de détection et mesures d'atténuation.

Voir le dépôt
1il y a 3 joursPas encore vérifié

CVE-2026-111497 : Écriture hors limites due à l'absence de vérification de la valeur de retour du commutateur de bloc dans le décodeur Google Brotli (Node2Shell / HTTP2Shell / Broccoli2Shell)

CVSS CVSS Type KEV

Date de dernière vérification : 2026-11-04 (KST). Chaque valeur indiquée provient uniquement des sources citées dans les References ci-dessous ; lorsque les valeurs diffèrent entre les sources, toutes sont mentionnées.

📌 TL;DR

  • Quoi : le décodeur C de Google Brotli (c/dec/decode.c) ignore la valeur de retour d'erreur d'un changement de bloc (block switch) invalide, poursuit le décodage dans un état corrompu et effectue ainsi une écriture hors des limites du tampon (Out-of-Bounds Write).
  • Où : tous les logiciels intégrant Brotli 1.0.3 ~ 1.2.0 — Node.js (22/24/26 et lignes EOL), Python Brotli/brotlicffi, Bun, .NET, Envoy, Istio, etc. L'impact nécessite un chemin de décompression (decompress) de données Content-Encoding: br contrôlées par l'attaquant.
  • Quel niveau de risque : DoS, exposition mémoire et RCE à distance sans authentification possibles (CVSS 4.0 du CNA : 9.2), et inscription au CISA KEV le 2026-10-27. Un correctif immédiat est nécessaire.

📋 Informations de base

ÉlémentContenu
ID CVECVE-2026-111497 (GHSA-9v8h-qqgm-4m35)
AliasNode2Shell (nom donné par Imperva), HTTP2Shell, Broccoli2Shell. Contrairement à ce que suggère le nom, il ne s'agit pas d'un défaut du protocole HTTP/2
Date de publication2026-10-21 : version de sécurité de Node.js et version corrigée de Brotli / 2026-10-22 : publication de l'enregistrement CVE
DécouvreursOpenAI Codex Security (Khai Tran, Sylvie Mayer)
Produits/versions affectésGoogle Brotli (libbrotlidec) 1.0.3 ~ 1.2.0 et produits l'intégrant ou s'y liant (voir tableau ci-dessous)
Versions corrigéesBrotli 1.0.10 / 1.1.1 / 1.2.1, Node.js 22.23.4 / 24.22.1 / 26.12.1, Python Brotli 1.2.1, brotlicffi 1.2.1.0, Bun 1.4.4
CVSS v4.0 (CNA : Google)9.2 Critical — CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS v3.1 (NVD)9.8 Critical — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v3.1 (Red Hat / Amazon Linux)8.1 — CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H (prise en compte de l'exigence d'attaque AT:P et du durcissement de la plateforme)
Niveau attribué par les éditeursNode.js : High / Red Hat : Important
CWECWE-787 Out-of-bounds Write (NVD, Red Hat, Centre canadien de cybersécurité) / CWE-252 Unchecked Return Value (description du CISA KEV, également cité comme cause racine dans certains articles d'analyse)
Exploitation réelleExploitation confirmée. Inscription au CISA KEV le 2026-10-27, échéance d'action pour les agences fédérales : 2026-11-10. Tentatives d'exploitation observées les 26 et 27 octobre par des opérateurs de honeypots (Previdian, ELLIO)

Détail du périmètre d'affectation

ComposantVersions affectéesVersions corrigées
Google Brotli (C, libbrotlidec)1.0.3 ~ 1.2.01.0.10, 1.1.1, 1.2.1
Node.js 26.x (Current)antérieures à 26.12.126.12.1
Node.js 24.x (LTS)antérieures à 24.22.124.22.1
Node.js 22.x (LTS)antérieures à 22.23.422.23.4
Node.js 25.x / 23.x / 20.x et antérieurstoutes les versions (EOL)aucun correctif → migrer vers 22/24/26
Bun1.4.3 et antérieurs1.4.4
Python Brotli (PyPI)1.2.0 et antérieurs1.2.1
Python brotlicffiantérieurs à 1.2.1.01.2.1.0
.NET / PowerShellvoir l'avis de l'éditeurmise à jour d'urgence .NET de Microsoft (dotnet/announcements#494)
Envoy / Istiovoir l'avis de l'éditeurversions corrigées publiées début octobre (sans mention explicite du défaut)
VMware SDDC Manager (VCF / vSphere Foundation)voir l'avis Broadcomvoir l'avis Broadcom

Chemins d'exposition indirecte : Python requests, urllib3, aiohttp[speedups], httpx décompressent automatiquement les réponses br si Brotli/brotlicffi est installé. curl est également concerné lorsqu'il utilise l'option de décompression.

Dates clés (2026)

DateÉvénement
02-27Commit de correction appliqué au dépôt google/brotli (marqué comme problème de sécurité, non publié)
Début octobrePublication des versions corrigées d'Envoy / Istio
10-21Publication de sécurité de Node.js (22.23.4 / 24.22.1 / 26.12.1), publication de Google Brotli 1.0.10 / 1.1.1 / 1.2.1
10-22Publication de l'enregistrement CVE, Imperva démontre l'exécution de code sur Node.js 24.22.0 (Linux arm64)
10-23Distribution des paquets PyPI corrigés
10-25Avis et mises à jour de Microsoft .NET
10-26ELLIO signale du trafic d'exploitation
10-27Ajout au catalogue CISA KEV (échéance de remédiation 11-10)

⚠️ Certains articles d'analyse rédigés entre le 24 et le 28 octobre indiquent « aucune attaque réelle confirmée, non inscrit au KEV », mais cela reflète la situation antérieure à l'inscription au KEV et diffère donc de l'état actuel.

🔍 Analyse de la cause racine de la vulnérabilité (Root Cause)

1. Quoi : la valeur de retour surchargée BROTLI_FALSE

Le décodage Brotli est une machine à états. Le flux est constitué de métablocs, et à l'intérieur de chaque métabloc apparaissent des instructions qui commutent le type de bloc (block switch) des littéraux, des commandes d'insertion-copie (insert-and-copy command) et des distances.

DecodeBlockTypeAndLength() interprète les changements de bloc et renvoie un BROTLI_BOOL. Le problème est que BROTLI_FALSE était utilisé avec deux significations totalement différentes.

SignificationNatureTraitement correct
Entrée supplémentaire nécessaire (needs more input)RécupérableAttendre l'entrée suivante puis reprendre
Le métabloc ne contient qu'un seul type de bloc, rendant le changement lui-même impossibleErreur de format fataleRejeter le flux

2. Pourquoi : la valeur de retour est ignorée (CWE-252)

L'appelant ne vérifiait pas cette valeur de retour.

  • Le wrapper de changement de bloc du flux de commandes (DecodeCommandBlockSwitch) est déclaré static void et ne conserve pas la valeur de retour ; la branche non-safe de la macro BROTLI_SAFE se contente également d'appeler la fonction et d'en jeter le résultat. (Analyse de SonicWall)
  • Une autre analyse (Redfox) explique que la valeur de retour est entièrement abandonnée dans le chemin de changement de bloc littéral (DecodeLiteralBlockSwitch). Bien que les fonctions pointées diffèrent selon les analyses, la description du correctif de distribution (TuxCare) indique que les trois décodeurs de changement de bloc — littéral, commande et distance — ont été modifiés pour renvoyer un code d'erreur ; les trois chemins peuvent donc être considérés comme concernés.

En conséquence, même lorsqu'une erreur de format survient, le décodeur continue comme si le changement avait réussi ; le compteur de longueur de bloc reste à 0 et l'état de position et de distance est reporté vers un chemin qui aurait dû être rejeté.

3. Comment : l'état corrompu conduit à une écriture hors limites (CWE-787)

Télécharger l’outil