Skip to content

Node.js corrige une RCE dans le décodeur Brotli (CVE-2026-111497)

Node.js a publié 22.23.4, 24.22.1 et 26.12.1 le 21 octobre pour 10 failles, dont CVE-2026-111497, une écriture hors limites dans le décodeur Brotli permettant une exécution de code à distance.

Publié le 3 min de lecture

Node.js a publié le 21 octobre 2026 des mises à jour de sécurité pour ses trois branches supportées, corrigeant 10 vulnérabilités. La plus sérieuse est CVE-2026-111497, une écriture hors limites (out-of-bounds write) dans le décodeur Brotli embarqué par Node.js, qualifiée de criticité haute et permettant, selon le projet, l'exécution de code à distance. Le CERT-FR a publié l'avis CERTFR-2026-AVI-1367 ; le bulletin officiel Node.js donne le détail.

Versions corrigées

BrancheVersion corrigée
22.x22.23.4
24.x24.22.1
26.x26.12.1

Node.js 20.x et antérieures sont en fin de vie et ne reçoivent pas de correctif. Aucun contournement n'est proposé pour la faille Brotli : la mise à jour est la seule remédiation.

Ce que fait la faille Brotli

CVE-2026-111497 est une écriture hors limites dans le code de décompression Brotli embarqué, déclenchée par une entrée compressée malformée. Tout chemin de code qui décompresse du Brotli contrôlé par l'attaquant est concerné : un serveur HTTP lisant un corps de requête encodé br, ou un client décompressant une réponse Brotli d'un serveur distant. Le correctif, repris en amont de Brotli, rejette plus tôt les entrées invalides.

Le CERT-FR résume les risques de cette livraison : exécution de code arbitraire à distance, contournement de la politique de sécurité et problème de sécurité non spécifié par l'éditeur.

État d'exploitation

Aucune exploitation en conditions réelles n'était signalée au 22 octobre. Un PoC public est apparu le 22 octobre, mais, selon The Hacker News, il n'atteint l'exécution de code que sur une version de test volontairement affaiblie ; sur une build standard, son auteur observe un plantage et une lecture limitée de la mémoire du processus. De quoi relativiser l'urgence immédiate, pas de quoi laisser la faille sans correctif.

Les autres failles

Trois autres sont notées hautes : CVE-2026-105482 (dns.resolve tronque les noms contenant un caractère NUL) et deux contournements de validation du nom d'hôte TLS (CVE-2026-105483, chiffres pleine chasse ; CVE-2026-106069, résolution approximative vers une IP). Le reste est de criticité moyenne ou basse. La livraison met aussi à jour les dépendances embarquées (c-ares, OpenSSL, SQLite, Undici) et retire du magasin de confiance le certificat intermédiaire eMudhra compromis.

Que faire

  1. Passer en 22.23.4 / 24.22.1 / 26.12.1 selon la branche, en priorité sur tout service qui décompresse du Brotli non maîtrisé.
  2. Sur 20.x ou antérieur : migration forcée, aucun correctif ne viendra.
  3. Reconstruire et redéployer les images de conteneurs figées sur une base Node ancienne — un tag node:22 ne récupère le correctif qu'après un nouveau pull et un rebuild.
  4. Pour les deux contournements TLS, considérer comme exposé tout service reposant sur la validation du nom d'hôte du certificat (mTLS, garde-fous SSRF indexés sur le nom d'hôte) tant qu'il n'est pas à jour.

Contexte

Une RCE dans un décompresseur embarqué qui touche toutes les branches rappelle que la surface d'attaque du runtime inclut les bibliothèques C qu'il livre, pas seulement le code applicatif. Si votre chaîne de déploiement ne sait pas appliquer un correctif Node en une journée, ce délai est désormais l'exposition.

Articles liés