infrastructure
Node.js corrige dix CVE dont un RCE Brotli : les backends crypto doivent patcher
Les versions 26.12.1, 24.22.1 et 22.23.4 publiées le 21 octobre couvrent quatre failles HIGH, trois MEDIUM et trois LOW. Les plateformes crypto exposent largement Node.js côté serveur.
La Node.js Foundation a publié le 21 octobre 2026 une mise à jour de sécurité couvrant dix CVE sur les branches 26.x, 24.x et 22.x, dont une faille HIGH severity permettant l'exécution de code à distance via le décodeur Brotli. Les versions corrigées sont v26.12.1, v24.22.1 et v22.23.4, selon le bulletin officiel de Node.js, couvert côté crypto par Cryptoast.
Les failles
Dix identifiants CVE, classés selon le bulletin Node.js :
HIGH severity
- CVE-2026-111497 — débordement de mémoire en écriture dans le décodeur Brotli, exécution de code à distance possible. Branches 26.x, 24.x, 22.x.
- CVE-2026-105482 —
dns.resolvetronque les noms contenant des caractères NUL. Branches 26.x, 24.x, 22.x. - CVE-2026-105483 — contournement de la vérification du nom d'hôte TLS si l'IP est écrite avec des chiffres fullwidth. Branches 26.x, 24.x.
- CVE-2026-106069 — contournement du nom d'hôte TLS lorsque l'hôte résout vers une IP par convention lâche. Branches 26.x, 24.x, 22.x.
MEDIUM severity
- CVE-2026-105481 — socket keep-alive traite une réponse écrite avant la requête.
- CVE-2026-106072 — noms IPv4 non canoniques laissant un SAN DNS authentifier un endpoint IP.
- CVE-2026-106074 —
crypto.randomUUID()etrandomInt(): les caches d'entropie sont persistés dans les snapshots de démarrage et les SEA (Single Executable Applications), donc plusieurs processus peuvent répéter les mêmes valeurs.
LOW severity
- CVE-2026-106070 —
ZipFilerenvoie des octets contrôlés par l'attaquant après un échec de validation d'en-tête. Branche 26.x. - CVE-2026-106071 — Permission Model : over-grant filesystem via un lookup radix wildcard. Branche 26.x.
- CVE-2026-106073 — Permission Model : contournement via
fs.realpathSync. Branches 26.x, 24.x, 22.x.
Pourquoi c'est important pour la crypto
Les plateformes de trading, les trading bots, les interfaces de wallets et les outils d'analytique on-chain sont très majoritairement écrits en Node.js côté serveur. Trois chemins d'exposition se distinguent dans ce lot :
- Le RCE Brotli (CVE-2026-111497). Toute surface qui déchiffre du Brotli à partir d'une entrée non fiable — un reverse proxy, un endpoint API acceptant du contenu compressé, un worker qui parse un flux WebSocket — peut, selon le scénario d'exploitation détaillé par l'avis, exécuter du code arbitraire côté serveur. C'est le vecteur à patcher en premier.
- Les deux contournements TLS (CVE-2026-105483, CVE-2026-106069). Un attaquant positionné sur le réseau peut présenter un certificat valide pour une autre IP et le faire accepter par un client Node.js. Les proxies API, les workers qui interrogent des nœuds RPC, et les intégrations exchange-vers-exchange reposent toutes sur TLS avec vérification du nom d'hôte. Le patch est obligatoire.
- L'entropie dans les SEA (CVE-2026-106074).
crypto.randomUUID()est utilisé par de nombreux outils de signature de session ou de génération d'identifiants de transaction. Un cache d'entropie persisté entre démarrages de processus signifie que des identifiants supposés uniques peuvent se répéter, ce qui ouvre des rejeux et des collisions dans les systèmes qui s'en servent comme nonce de requête.
Mudit Gupta, CTO de Polygon Labs, cité par Cryptoast, précise que la série est générique et non spécifique au secteur crypto : l'exposition réelle dépend de la rapidité de patch, pas d'un vecteur crypto natif.
Dépendances également mises à jour
Le bulletin Node.js intègre quatre mises à jour de dépendances dans les mêmes versions :
- c-ares sur 26.x, 24.x, 22.x.
- Certificats racines, pour couvrir la compromission de l'autorité eMudhra (huit clés privées compromises, dont certaines étaient de minuscules entiers comme 4, 56 et 115, selon le rapport de Scott Helme).
- OpenSSL sur 24.x, 22.x.
- SQLite sur 22.x.
- Undici sur 26.x, 24.x, 22.x.
Les versions End-of-Life sont également affectées — administrateurs sur Node 20.x ou plus anciens doivent migrer vers une branche supportée avant d'appliquer les patches.
Que faire maintenant
- Mettre à jour les workers Node.js en production vers v26.12.1, v24.22.1 ou v22.23.4 sans délai.
- Rotation des certificats dépendant de l'autorité eMudhra. Mozilla et Chrome ont bloqué les certificats dès le jour du rapport Helme ; Apple a suivi le 19 octobre, Microsoft le 20. Côté runtime, Go, Python (
certifi) et webpki-roots pour Rust ont corrigé avant Node.js ; Bun restait en draft au 21 octobre, selon Cryptoast. - Auditer les ingresses qui acceptent Brotli depuis l'extérieur et confirmer que la version de
libbrotliincluse par Node.js est bien celle des branches corrigées.
Contexte
C'est la deuxième fois dans le mois qu'une faille d'écosystème touche directement la pile technique des plateformes crypto. Le 21 octobre a aussi vu la publication des correctifs PHP autour de la faille PHP2Shell, exploitée en masse selon Cloudflare, et la fuite Metabase chez TRACFIN a rappelé qu'une CVE non appliquée sur un composant tiers suffit à exposer une plateforme régulée. Le pattern est clair : les attaquants ne visent pas d'abord la crypto, ils visent la couche d'infrastructure que la crypto partage avec le reste du web.
L'avantage pour l'écosystème est que les correctifs existent. L'inconvénient est que le délai de patch moyen des plateformes reste la variable critique — et il se mesure, selon l'exposition opérationnelle, en heures ou en jours, pas en semaines.