Dans cet article
Si l'application, le site, la boutique en ligne ou l'API de votre entreprise a été développé avec Node.js, y compris les sites Next.js et les back-ends Express ou NestJS, demandez dès aujourd'hui à votre développeur de passer Node.js en version 22.23.4, 24.22.1 ou 26.12.1, puis de reconstruire et redémarrer le serveur. Le projet Node.js a publié ces versions le 21 octobre 2026 pour corriger une faille baptisée Node2Shell (CVE-2026-111497), notée 9,2 sur 10, qui permet à un attaquant sans aucun mot de passe d'exécuter du code sur votre serveur en lui envoyant des données compressées spécialement fabriquées. L'Autorité nationale saoudienne de cybersécurité a publié une alerte de niveau « très élevé », et le 27 octobre l'agence américaine de cybersécurité CISA a confirmé que la faille est exploitée dans de vraies attaques.
Que s'est-il passé exactement ?
La faille se trouve dans Brotli, un format de compression que les serveurs web et les navigateurs utilisent pour réduire le volume des données qu'ils échangent, et Node.js embarque sa propre copie du décodeur Brotli de Google. Selon l'avis de sécurité de Node.js, des données compressées malformées font écrire le décodeur au-delà de la fin d'un tampon interne, ce qui peut faire planter l'application, divulguer le contenu de sa mémoire ou permettre à un attaquant d'exécuter du code. L'avis attribue le signalement à l'équipe Codex Security d'OpenAI, et la même publication a corrigé 10 vulnérabilités au total, dont 4 de gravité élevée.
Les événements se sont ensuite accélérés. Le 22 octobre, un jour après le correctif, l'équipe Red Team d'Imperva a exécuté du code sur l'image officielle de Node.js 24.22.0 par deux chemins du quotidien : la fonction fetch() intégrée et les corps de requête traités par Express 5. Le 26 octobre, ELLIO a enregistré un véritable trafic d'exploitation portant un code d'attaque public. Le 27 octobre, la CISA a ajouté la faille à son catalogue des vulnérabilités exploitées dans la nature.
Le défaut lui-même est ancien. Selon la fiche CVE, il touche les versions 1.0.3 à 1.2.0 de Brotli, et OpenAI indique que la cause profonde avait été corrigée dans le code source de Brotli en février 2026, sans que personne ne sache qu'il s'agissait d'une faille de sécurité et sans nouvelle version, jusqu'à la sortie de Brotli 1.2.1 le 21 octobre. Si cela vous rappelle quelque chose, c'est normal : la semaine dernière, nous avons couvert PHP2Shell, la faille qui ouvrait les serveurs PHP et WordPress. Node2Shell représente le même type de risque pour les applications écrites en JavaScript.
Mon application est-elle concernée ?
Node.js fait tourner la partie serveur d'une grande partie des sites modernes, des back-ends d'applications mobiles, des tableaux de bord et des API. Si votre système a été développé ces dernières années par une agence ou un développeur indépendant, il y a de bonnes chances qu'il tourne sous Node.js sans que vous le sachiez. Les branches touchées sont 22.x, 24.x et 26.x avant les versions corrigées, ainsi que les branches en fin de vie 20.x, 23.x et 25.x, dont le projet Node.js rappelle qu'elles sont toujours concernées et ne recevront aucun correctif.
Faire tourner Node.js ne suffit pas à vous exposer : encore faut-il que quelque chose transmette les données de l'attaquant au décodeur. Les chercheurs citent trois chemins courants :
- Des requêtes compressées entrantes. Les analyseurs de corps de requête d'Express 5, de body-parser 2 et de Koa décompressent automatiquement les corps au format Brotli, avant même que votre propre code ne s'exécute.
- Du contenu que votre serveur va chercher. Si votre application ouvre des liens externes, comme les aperçus de liens, les webhooks, les robots d'exploration ou les agents d'IA qui lisent des pages web, un site hostile peut répondre avec des données compressées piégées. La fonction fetch() intégrée, axios et les requêtes côté serveur de frameworks comme Next.js les décompressent automatiquement.
- Des fichiers envoyés par les utilisateurs. Tout code qui décompresse des données Brotli fournies par un client ou un visiteur.
Le risque dépasse Node.js. L'alerte de la NCA cite aussi Python, Bun et Envoy, et Microsoft a publié le 25 octobre des correctifs pour .NET 8, 9, 10 et 11, Visual Studio 2019, 2022 et 2026, et PowerShell 7.4 à 7.6, en classant la faille critique pour .NET avec l'évaluation « Exploitation More Likely ». Microsoft précise que la décompression Brotli n'est pas activée par défaut dans .NET : seules les applications qui l'ont activée sont exposées.
Si votre site est hébergé chez Vercel, l'entreprise indique dans son avis avoir déployé, le jour même où Node.js a publié le correctif, des règles de pare-feu bloquant le chemin d'attaque entrant pour tous les projets, et que tous les nouveaux déploiements utilisent un Node.js corrigé depuis le 28 octobre. Les projets existants doivent être redéployés, et ceux encore sous Node.js 20 doivent passer en 22 ou 24.
Que faire aujourd'hui : cinq étapes
- Posez une question par écrit. Quelle version de Node.js tourne sur nos serveurs et dans nos images Docker ? Demandez à votre développeur de vérifier le numéro de version de Node.js avec la commande node -v. Ne vous fiez pas au numéro de version de Brotli : ELLIO a constaté qu'il affiche 1.2.0 sur les versions corrigées comme sur les vulnérables.
- Passez à une version corrigée. 22.23.4, 24.22.1 ou 26.12.1. Si vous êtes en 20.x, 23.x ou 25.x, migrez vers une branche maintenue comme la 22 ou la 24, et testez avant la mise en production.
- Reconstruisez et redémarrez. Un processus en cours d'exécution garde l'ancien code. Reconstruisez les images de conteneurs sur une image de base corrigée, car un Dockerfile figé sur 24.22.0 continuera de livrer la version vulnérable tant que personne ne modifie cette ligne. Vérifiez aussi les serveurs de préproduction, les chaînes de build et les fonctions serverless.
- Mettez à jour les autres copies. Les paquets Python Brotli et brotlicffi (versions 1.2.1 et 1.2.1.0), Bun, Envoy, la bibliothèque Brotli de votre distribution Linux, et .NET via la mise à jour Microsoft du 25 octobre.
- Surveillez les journaux et les fichiers de plantage. Cherchez des requêtes compressées en Brotli anormalement volumineuses et des plantages répétés des processus. ELLIO prévient que la plupart des attaques ratées font planter le processus, et qu'un fichier de plantage peut contenir les cookies de session et les clés des visiteurs : limitez qui peut lire ces fichiers (core dumps) et leur durée de conservation.
Si vous ne pouvez pas mettre à jour aujourd'hui
En mesure temporaire, bloquez sur votre serveur frontal ou votre pare-feu les requêtes entrantes portant l'en-tête Content-Encoding: br, si votre application n'en a pas besoin. Vercel et Imperva ont ajouté des règles de pare-feu pour cette faille, mais Vercel souligne elle-même qu'un pare-feu ne couvre pas les réponses que votre serveur récupère sur d'autres sites : seule la mise à jour de Node.js ferme ce chemin. Considérez toute couche de protection comme du temps gagné, pas comme un substitut à la mise à jour.
Le regard d'Origami
Deux failles critiques dans les fondations du web en un mois, PHP2Shell puis Node2Shell, racontent une histoire claire : le code écrit par votre équipe peut être sain alors que l'environnement d'exécution en dessous est ouvert. Le correctif de Node2Shell a dormi environ huit mois dans le code source de Brotli avant que quiconque ne comprenne qu'il s'agissait d'un problème de sécurité, et une fois les détails publiés, il a fallu un jour aux chercheurs pour exécuter du code sur une version officielle. Ce que nous voyons dans beaucoup d'entreprises, c'est une application livrée il y a des années, dont personne n'assure les mises à jour, et aucune liste des endroits où Node.js tourne réellement. Si c'est votre cas, commencez cette liste aujourd'hui. Chez Origami, nous construisons des applications web et des systèmes, dont beaucoup tournent sous Node.js et Next.js, et nous suivons les mises à jour de leur environnement dès le premier jour. Pour faire vérifier votre application ou migrer Node.js sans interruption, contactez-nous.
Sources
- Autorité nationale saoudienne de cybersécurité (NCA) : alerte Brotli n° 2026-7959
- Node.js : publications de sécurité du 21 octobre 2026
- Google Brotli sur GitHub : notes de version 1.2.1
- CVE.org : fiche CVE-2026-111497, versions touchées et note de 9,2
- CISA : deux vulnérabilités exploitées ajoutées au catalogue, 27 octobre 2026
- Microsoft Security Response Center : CVE-2026-111497
- Vercel : avis de sécurité sur Node.js
- Imperva Red Team : Node2Shell, des données Brotli à l'exécution de code
- ELLIO : exploitation de Node2Shell dans la nature
- SecurityWeek : correctifs chez Microsoft, Node.js et dans les paquets Python
Questions fréquentes
Le site de mon entreprise est-il concerné par Node2Shell s'il est construit avec Next.js ?
Il peut l'être. Next.js tourne sous Node.js, et ses requêtes côté serveur passent par le décodeur vulnérable. Chez Vercel, les nouveaux déploiements utilisent un Node.js corrigé depuis le 28 octobre, un redéploiement suffit donc ; si vous l'hébergez vous-même, passez Node.js en 22.23.4, 24.22.1 ou 26.12.1.
Quelles versions de Node.js corrigent Node2Shell ?
Les versions 22.23.4, 24.22.1 et 26.12.1, publiées le 21 octobre 2026. Les branches 20.x, 23.x et 25.x sont en fin de vie et ne recevront aucun correctif : migrez vers la 22 ou la 24.
Comment savoir quelle version de Node.js fait tourner mon application ?
Demandez à votre développeur d'exécuter node -v sur le serveur et dans chaque image Docker, et de vous envoyer le résultat par écrit. Ne vous fiez pas au numéro de version de Brotli : il affiche 1.2.0 sur les versions corrigées comme sur les vulnérables.
Un pare-feu applicatif (WAF) suffit-il à la place de la mise à jour ?
Non. Un WAF peut bloquer les requêtes compressées malveillantes entrantes, mais il ne couvre pas les réponses que votre serveur récupère sur d'autres sites. Vercel et Imperva ont toutes deux ajouté des règles WAF pour cette faille, et toutes deux demandent quand même de mettre à jour Node.js.
Suivez Origami sur Google
Ajoutez Origami à vos sources préférées : nos articles apparaîtront en premier pour vous dans la recherche Google et les actualités à la une.








