La faille Node2Shell n’est plus seulement une menace théorique. Identifiée sous la référence CVE-2026-111497, cette vulnérabilité du décodeur Brotli peut affecter des applications Node.js, .NET et d’autres logiciels qui décompressent des données contrôlées par un attaquant. Le 27 octobre 2026, l’agence américaine CISA l’a ajoutée à son catalogue des vulnérabilités exploitées dans des attaques réelles. Des correctifs existent déjà pour Node.js et plusieurs versions de .NET : voici les environnements concernés, les versions à installer et les vérifications à effectuer sur vos serveurs.
Article du 29 octobre 2026. Sources : Node.js, Microsoft, organismes nationaux de cybersécurité et CISA. Attention : le score CVSS 9,2 attribué à la vulnérabilité Brotli et le score 8,1 de l’avis Microsoft .NET ne reposent pas sur les mêmes évaluations ; ils ne doivent pas être confondus.
Ce qu’il faut retenir
- CVE-2026-111497 : vulnérabilité dans le décodeur de données compressées Brotli, surnommée Node2Shell ou Broccoli2Shell.
- Exploitation confirmée : la CISA l’a intégrée à son catalogue KEV le 27 octobre 2026 ; elle ne détaille pas publiquement les victimes.
- Impact possible : corruption mémoire, fuite de données, plantage et, dans certaines conditions, exécution de code à distance.
- Node.js : correctifs publiés le 21 octobre pour les branches 22, 24 et 26.
- .NET : mises à jour correctives pour .NET 8, 9, 10 et 11 RC, publiées par Microsoft le 25 octobre.
- Prudence : un site utilisant Brotli n’est pas automatiquement vulnérable ; l’exposition dépend de la décompression de données non fiables.
Node2Shell : une vulnérabilité exploitée dans des attaques réelles
Depuis le 27 octobre 2026, CVE-2026-111497 figure dans la liste Known Exploited Vulnerabilities (KEV) de la CISA, l’agence fédérale américaine de cybersécurité. Cette inscription signifie que l’agence dispose d’éléments confirmant son exploitation malveillante. Elle ne signifie pas que tous les serveurs Node.js sont compromis.
Le Centre canadien pour la cybersécurité, dans un avis publié le 28 octobre, et le NCSC néo-zélandais, dans une alerte datée du 29 octobre, signalent également la menace et demandent l’application rapide des correctifs. Ces organismes ne présentent toutefois pas de nombre consolidé de victimes ou de détail complet sur les campagnes d’attaque.
La faille a été rendue publique lors des mises à jour de sécurité Node.js du 21 octobre. Microsoft a ensuite publié des correctifs concernant plusieurs versions de .NET le 25 octobre. L’inscription au KEV quelques jours plus tard change la priorité de traitement : les administrateurs doivent désormais examiner leurs déploiements sans attendre leur prochain cycle habituel de maintenance.
Comment fonctionne cette faille liée à Brotli ?
Brotli est un format et un ensemble de bibliothèques de compression très utilisés sur le Web. Il permet de réduire la taille des données échangées, par exemple du contenu HTML, CSS ou JavaScript. Node.js et de nombreux autres environnements peuvent utiliser le décodeur Brotli pour lire des flux compressés.
CVE-2026-111497 correspond à une écriture hors limites dans la mémoire (out-of-bounds write, CWE-787). Un flux Brotli volontairement malformé peut conduire le décodeur à écrire des données au-delà d’un tampon prévu. Cette corruption mémoire peut entraîner un arrêt brutal du processus, exposer des fragments de mémoire ou, dans des conditions particulières, permettre l’exécution de code.
Les équipes Node.js expliquent que le problème concerne un traitement incorrect du changement de bloc dans le décodeur. Il s’agit d’un défaut de programmation, et non d’une faiblesse du chiffrement ou d’un mécanisme de connexion.
La condition essentielle : l’application doit être amenée à décompresser des données Brotli qu’un attaquant peut manipuler. Un serveur qui utilise Brotli uniquement pour compresser ses propres pages sortantes n’est donc pas automatiquement exploitable par cette seule activité.
Node.js : quelles versions corrigent CVE-2026-111497 ?
Le projet Node.js a publié ses correctifs le 21 octobre 2026. Les branches prises en charge disposent des versions minimales suivantes :
| Branche | Première version corrigée | Action recommandée |
|---|---|---|
| Node.js 22 | 22.23.4 | Mettre à jour vers cette version ou une version plus récente corrigée |
| Node.js 24 | 24.22.1 | Mettre à jour vers cette version ou une version plus récente corrigée |
| Node.js 26 | 26.12.1 | Mettre à jour vers cette version ou une version plus récente corrigée |
| Node.js 20, 23, 25 ou plus ancien | Pas de correctif sur ces branches en fin de vie | Migrer vers une branche encore maintenue |
Les notes de sécurité officielles Node.js détaillent cette vulnérabilité et les autres corrections regroupées dans les mises à jour d’octobre. La version installée peut être contrôlée avec la commande node --version, mais il faut aussi vérifier le Node.js réellement utilisé par le processus en production et par l’image Docker, pas seulement celui de la machine d’administration.
Les distributions Linux peuvent appliquer un correctif rétroporté sans modifier le numéro de version amont de la bibliothèque. Une version de paquet qui paraît ancienne n’est donc pas systématiquement vulnérable : consultez le bulletin du mainteneur de votre distribution.
.NET : Microsoft publie aussi des versions sécurisées
Bien que le nom Node2Shell mette l’accent sur JavaScript, la vulnérabilité peut aussi toucher les applications Microsoft .NET utilisant un décodeur Brotli vulnérable. Microsoft a publié son bulletin de sécurité le 25 octobre 2026.
| Branche .NET | Version corrigée |
|---|---|
| .NET 8 | 8.0.33 |
| .NET 9 | 9.0.22 |
| .NET 10 | 10.0.14 |
| .NET 11 (préversion) | RC 3, build 11.0.0-rc.3.26522.148 |
Le bulletin Microsoft sur CVE-2026-111497 précise plusieurs points essentiels. .NET Framework n’est pas affecté par cet avis. En outre, les applications ASP.NET Core et HttpClient n’activent pas automatiquement la décompression Brotli dans leur configuration par défaut : la seule présence de .NET sur un serveur ne suffit pas à établir qu’il est exploitable.
Les applications qui utilisent explicitement BrotliStream, BrotliDecoder, la décompression de requêtes avec Brotli ou un gestionnaire HTTP configuré pour accepter les réponses Brotli doivent être examinées en priorité.
Pour les applications .NET autonomes (self-contained) et celles compilées avec NativeAOT, une mise à jour du runtime installé sur le système ne remplace pas forcément le code vulnérable déjà embarqué. Il peut être nécessaire de recompiler puis redéployer l’application avec le SDK corrigé.
Brotli, Python, Bun et conteneurs : une portée plus large que Node.js
La racine du problème se trouve dans le décodeur de Google Brotli. Les versions de bibliothèque concernées sont notamment 1.0.3 à 1.0.9, 1.1.0 et 1.2.0. Les branches amont corrigées sont 1.0.10, 1.1.1 et 1.2.1.
Des programmes Python utilisant Brotli ou brotlicffi, des runtimes comme Bun, des proxys, des passerelles HTTP et des composants tiers peuvent également être concernés s’ils embarquent le code fautif. Les versions correctives dépendent du logiciel et de la manière dont Brotli est distribué.
Cette situation complique les contrôles : un administrateur peut mettre à jour Node.js sur sa machine, mais continuer à exécuter une ancienne version intégrée dans une image Docker ou un logiciel fourni par un éditeur. De même, une bibliothèque peut être compilée statiquement dans une application.
Selon le NCSC néo-zélandais, les correctifs ne sont pas disponibles au même rythme pour tous les systèmes et distributions. Il faut suivre les avis des fournisseurs et ne pas présumer qu’une mise à jour générique de l’OS couvre tous les logiciels installés.
Comment savoir si votre serveur est exposé ?
La priorité est de déterminer où des données compressées non fiables sont décompressées. Voici une démarche de vérification défensive pour les équipes techniques.
- Inventorier les environnements Node.js, .NET et les composants qui embarquent Brotli : serveurs, applications, fonctions cloud et conteneurs.
- Vérifier les versions effectivement exécutées, et pas seulement les versions déclarées dans un fichier de dépendances.
- Identifier les flux entrants où une requête HTTP, une réponse de service distant ou un fichier compressé peut être contrôlé par un tiers.
- Comparer les composants aux avis de sécurité officiels, en tenant compte des correctifs rétroportés par les distributions Linux.
- Installer les versions corrigées, redémarrer les processus et reconstruire les images ou exécutables autonomes contenant le décodeur.
- Examiner les journaux et les anomalies de fonctionnement : plantages inexpliqués, erreurs de décompression, changements de comportement ou accès non autorisés.
Les outils d’inventaire logiciels et les SBOM (Software Bill of Materials) peuvent faciliter le repérage des bibliothèques vulnérables, mais un scanner qui ne voit qu’un numéro de version peut aussi produire des faux positifs lorsqu’un fournisseur a rétroporté le correctif.
Que faire si le correctif n’est pas encore disponible ?
Lorsque la mise à jour doit attendre, les autorités de cybersécurité recommandent de désactiver temporairement la décompression des données Brotli provenant de sources non fiables, dans la mesure où l’application le permet.
Cette mitigation doit être appliquée avec précaution. Dans .NET, par exemple, il ne faut pas ajouter une fonction de décompression que l’application n’utilisait pas déjà simplement pour la configurer. Microsoft recommande au contraire de modifier uniquement la configuration existante, puis de tester les conséquences de l’exclusion de Brotli sur les échanges.
Pour un service exposé à Internet, les équipes peuvent également réduire temporairement les chemins acceptant des données compressées non fiables et surveiller les erreurs jusqu’à l’installation d’un correctif officiel. Ces protections provisoires ne remplacent pas les mises à jour.
Node2Shell est-elle une faille critique pour tous les sites Web ?
Non. Le fait d’héberger un site WordPress, une API ou un serveur Web qui annonce une prise en charge de Brotli ne prouve pas, à lui seul, une exploitation possible. Le risque dépend de la version du décodeur, du chemin de traitement et de la capacité d’un attaquant à lui fournir des données compressées malformées.
Google et plusieurs éditeurs évaluent la gravité de CVE-2026-111497 à un niveau élevé ou critique, mais l’impact sur une application donnée dépend de son architecture. Le score CVSS 9,2 cité pour la bibliothèque Brotli ne doit pas être confondu avec le score 8,1 du bulletin propre à .NET.
Les administrateurs de sites et d’applications devraient donc privilégier une vérification technique documentée plutôt qu’une conclusion hâtive fondée sur la seule présence du mot « Brotli » dans une configuration.
Pourquoi la CISA change le niveau d’urgence
L’inscription dans le catalogue KEV distingue Node2Shell des vulnérabilités uniquement démontrées en laboratoire. Elle indique que des usages malveillants sont désormais connus. La CISA demande aux agences fédérales américaines concernées de respecter une échéance de remédiation au 10 novembre 2026.
Cette date réglementaire américaine ne crée pas une obligation identique pour toutes les entreprises françaises. Elle constitue néanmoins un indicateur utile de priorité : les organisations disposant d’applications exposées devraient traiter la vulnérabilité sans délai, sous réserve des tests nécessaires au déploiement.
Pour suivre les alertes de sécurité publiées par TechPi, retrouvez aussi notre dossier sur les failles PHP d’octobre et les versions à corriger. Il s’agit toutefois de vulnérabilités distinctes : Node2Shell et PHP2Shell ne doivent pas être confondues.
Sources
- Node.js, 21 octobre 2026 : bulletin officiel et mises à jour de sécurité
- Microsoft .NET, 25 octobre 2026 : avis de sécurité et versions corrigées
- CISA : catalogue des vulnérabilités activement exploitées (KEV), CVE-2026-111497
- Centre canadien pour la cybersécurité, 28 octobre : avis sur Brotli et les logiciels concernés
- NCSC Nouvelle-Zélande, 29 octobre 2026 : vulnérabilité, correctifs et mesures d’atténuation
- GitHub Advisory Database : versions de Brotli concernées et corrigées








