Node.js 26.12.1, 24.22.1 et 22.23.4 corrigent 10 failles de sécurité
Node.js a corrigé dix vulnérabilités le 21 octobre 2026, dont quatre de gravité élevée, parmi lesquelles un bug du décodeur Brotli qui peut permettre l'exécution de code à distance.
3 min de lecture

En chiffres
- vulnerabilities fixed across three release lines
- 10
- rated high severity
- 4
- bundled dependencies updated, eMudhra block included
- 5
Le projet Node.js a publié des mises à jour de sécurité pour ses trois branches prises en charge le 21 octobre 2026, corrigeant dix vulnérabilités. Quatre sont classées élevées. L'une d'elles touche le décodeur Brotli et peut, selon le projet, permettre l'exécution de code à distance. Quiconque utilise Node.js 26, 24 ou 22 doit passer à 26.12.1, 24.22.1 ou 22.23.4.
Les versions corrigées et leur périmètre
Node.js est l'environnement d'exécution JavaScript derrière l'essentiel du JavaScript côté serveur, des API web aux outils de build. Le billet de sécurité de Node.js classe les correctifs par gravité : quatre élevés, trois moyens et trois faibles. Chaque branche a une version corrigée.
| Branche | Version corrigée | Statut |
|---|---|---|
| 26.x | 26.12.1 | Current |
| 24.x | 24.22.1 | LTS |
| 22.x | 22.23.4 | LTS |
LTS signifie support à long terme : une branche qui reçoit des correctifs pendant des années. D'après le site japonais Jinrai, qui a vérifié la réaction des fournisseurs, 24.x est pris en charge jusqu'au 30 avril 2028 et 22.x jusqu'au 30 avril 2027. Node.js 26 doit passer en LTS le 28 octobre 2026.
Ces versions mettent aussi à jour cinq bibliothèques intégrées : c-ares (requêtes DNS), Undici (le client HTTP derrière fetch), OpenSSL, SQLite et la liste de certificats intégrée. Ce dernier changement bloque les certificats d'eMudhra, l'autorité de certification dont les clés ont été exposées cette semaine. Tech AI Wire a couvert cet incident dans Clés de CA d'eMudhra compromises : Go, Firefox et NSS publient des correctifs.
Les quatre failles de gravité élevée
| CVE | Le problème | Branches touchées |
|---|---|---|
| CVE-2026-111497 | Le décodeur Brotli écrit hors limites, ce qui permet l'exécution de code à distance | 26, 24, 22 |
| CVE-2026-106069 | La vérification du nom d'hôte TLS réussit quand un hôte se résout vaguement en adresse IP | 26, 24, 22 |
| CVE-2026-105483 | La vérification du nom d'hôte TLS réussit quand une IP est écrite en chiffres pleine largeur | 26, 24 |
| CVE-2026-105482 | dns.resolve tronque les noms contenant un caractère NUL | 26, 24, 22 |
Brotli est un format de compression que les serveurs web et les navigateurs utilisent pour réduire les réponses. Une écriture hors limites signifie que le décodeur place des données au-delà de la mémoire qui lui était attribuée. Jinrai note que le billet officiel ne décrit pas encore les conditions nécessaires à un attaquant.
Les deux failles TLS se trouvent dans la vérification qui s'assure que le certificat d'un serveur correspond à l'adresse demandée. Si une adresse est écrite sous une forme inhabituelle, la vérification peut accepter le mauvais certificat. Jinrai cite le dossier du correctif, selon lequel l'exploitation n'est « pas facile ». Aucune attaque n'avait été signalée tôt le 22 octobre, heure du Japon.
Les failles moyennes et faibles à surveiller
Une faille moyenne touche les applications construites en exécutable unique (SEA) ou à partir d'instantanés de démarrage. Les deux intègrent une copie préparée du programme dans un seul fichier. Selon Node.js, les caches de nombres aléatoires de crypto.randomUUID() et randomInt() étaient enregistrés dans cette copie. Chaque processus répétait donc les mêmes valeurs.
Une autre faille moyenne permet à une connexion keep-alive d'accepter une réponse écrite avant l'envoi de la requête. Deux failles faibles concernent le Permission Model, le bac à sable optionnel qui limite les fichiers qu'un script peut toucher.
Ce que cela signifie pour les développeurs
La mise à jour est banale, mais l'origine de votre Node.js décide de la vitesse à laquelle elle arrive.
- Vérifiez chaque environnement, pas seulement votre portable. Lancez
node --versionen production, en CI et dans les conteneurs. Jinrai a trouvé les images Docker officielles déjà étiquetées avec les versions corrigées, alors que Homebrew proposait encore 26.12.0 des heures plus tard. - Reconstruisez les applications en un seul fichier. Si vous livrez une SEA ou utilisez un instantané de démarrage, reconstruisez-la avec un Node.js corrigé. Un runtime réparé ne corrige pas les valeurs aléatoires déjà intégrées dans un ancien binaire.
- Quittez Node.js 20 et 25. Selon Node.js, les branches en fin de vie sont toujours touchées, et Jinrai confirme qu'aucune des deux ne reçoit de correctif. La version 20 n'est plus prise en charge depuis le 30 avril 2026.
- Traitez d'abord les services qui décompressent des données clients. Une API publique qui accepte des corps de requête compressés en Brotli est la cible la plus évidente de CVE-2026-111497.
Le blocage d'eMudhra arrive avec la mise à jour, souligne heise online. Node.js embarque désormais une liste de certificats intermédiaires bloqués. Il peut ainsi rejeter une chaîne même quand sa racine reste approuvée. Le dernier correctif de sécurité de Node.js, en septembre, était plus modeste : Node.js 22.23.3 LTS corrige un bug use-after-free dans HTTP/2.
Sources
Articles liés

Tools This Week : 16 octobre 2026 - Bun 1.4.3, Figma Specs
Dix outils pour développeurs cette semaine, menés par le vérificateur TypeScript de Bun 1.4.3 et Figma Specs, avec Rust 1.99.1, les contrôles de licences de GitHub et DeepSeek V4.1-Flash-1017.

Alerte malware sur Zod 4.6.6 : le commit malveillant n'a jamais atteint npm
Zod 4.6.6 est sorti le 11 octobre avec, dans son historique, des commits malveillants du 21 septembre. Ils ont été annulés le jour même, et aucun n'a atteint npm.

MALFEX : un malware npm resté indétecté pendant 14 mois
MALFEX, une campagne de malware npm menée par une seule personne, a publié 12 paquets depuis 2023 et totalisé 40 767 téléchargements. Certains paquets sont encore en ligne, sans avis de sécurité.