Un défaut de gestion de la mémoire dans le décodeur Brotli permet à un attaquant d'exécuter du code à distance sans aucune authentification. Le 23 octobre 2026, OpenAI a révélé que son équipe Codex Security avait déterré la vulnérabilité lors d'un exercice de red teaming. Dès le 21 octobre, le projet Node.js avait publié des mises à jour de sécurité : les versions 26.12.1, 24.22.1 et 22.23.4, couvrant les lignes 26.x, 24.x et 22.x.
Où se niche la faille : un « changement de bloc » mal interprété
L'avis de sécurité de Node.js décrit la cause avec précision. En traitant des données compressées malformées, le décodeur a confondu un changement de bloc invalide avec un simple besoin temporaire de données supplémentaires, au lieu d'y voir une erreur de format définitive. Le décodeur en continu a donc continué à empiler des octets dans un tampon interne de huit octets seulement, jusqu'à en dépasser les limites.
Un attaquant capable de faire ingérer des données Brotli à une application obtient ainsi le pouvoir de corrompre la mémoire du processus : plantage dans le meilleur des cas, fuite de mémoire dans les cas graves, exécution de code à distance dans le pire. La voie d'attaque est bidirectionnelle — les serveurs qui acceptent des données compressées peuvent être compromis, et les outils clients ayant la compression activée (comme curl) sont exposés de la même façon face à un serveur malveillant.
De Node.js à Envoy : une portée plus large qu'il n'y paraît
Développé par Google, Brotli est devenu aussi omniprésent que l'air dans l'infrastructure d'Internet : Node.js, Bun et Envoy embarquent tous ce décodeur. Une application peut ne contenir aucune ligne de code de compression et porter pourtant un décodeur vulnérable dans son arbre de dépendances — ces « dépendances invisibles » sont précisément ce qui rend les vulnérabilités de la chaîne d'approvisionnement si coriaces.
Une vulnérabilité restée huit mois à l'air libre
Le plus révélateur, c'est son « passé » : selon OpenAI, la cause racine avait déjà été corrigée dans le code source amont de Brotli en février 2026, mais personne n'y avait alors vu un problème de sécurité. Aucun numéro CVE, aucune incitation à mettre à jour les projets en aval. Pendant huit mois, une faille réellement exploitable et grave est restée à l'air libre dans la chaîne d'approvisionnement open source — non parce que personne ne pouvait la corriger, mais parce que personne n'avait reconnu qu'elle méritait de l'être. Ce n'est qu'après que l'équipe rouge agentique d'OpenAI l'a mise au jour que Brotli a reçu la CVE-2026-111497 et publié de nouvelles versions. Node.js classe la plus grave faille de ce lot au niveau « élevé » et précise que toutes les lignes principales non EOL sont concernées.
Que faire : mettre à jour d'abord, auditer les dépendances ensuite
Les équipes sous Node.js doivent passer à la version corrigée de leur ligne (26.12.1 / 24.22.1 / 22.23.4) ; les utilisateurs de Bun et d'Envoy attendront les mises à jour de sécurité des projets en aval. Il vaut la peine de passer l'arbre de dépendances au peigne fin à la recherche de composants embarquant un décodeur Brotli — un correctif appliqué à moitié, c'est une porte fermée à moitié.
L'affaire illustre aussi la « chasse aux vulnérabilités assistée par IA » : il y a moins d'un mois, l'IA aidait déjà à déterrer une porte d'entrée pour l'exécution à distance cachée depuis plus de dix ans dans le cœur de PHP (couverture) ; OpenAI a lui-même isolé d'Internet son environnement d'entraînement des modèles frontier après ses exercices de red teaming. L'IA passe du rôle de « scanner auxiliaire » à celui d'acteur capable de révéler de véritables zero-days — des initiatives comme Patch the Planet, qui traquent les vulnérabilités dans l'open source, ne vont pas chômer.