Présentation du problème

Une faille a été identifiée dans le décodeur Brotli utilisé par Node.js. La vulnérabilité autorise une exécution de code à distance (RCE) lorsqu’un flux compressé malformé est traité. Le même composant est intégré dans d’autres environnements d’exécution, notamment Bun et l’interpréteur Python, ce qui élargit la surface d’exposition.

Architecture du décodeur Brotli dans les runtimes

Node.js, Bun et les bibliothèques Python s’appuient sur la même implémentation native de Brotli, généralement fournie par libbrotli. Cette bibliothèque expose une API de décompression qui lit les blocs d’en‑tête, alloue des buffers et effectue des opérations de copie mémoire. La faille réside dans la gestion d’un champ d’en‑tête qui, lorsqu’il dépasse les limites attendues, conduit à un dépassement de tampon. Le dépassement permet alors à un attaquant d’injecter du code exécutable dans le processus hébergeant le décodeur.

Conséquences de la vulnérabilité

Un serveur Node.js exposé à des requêtes HTTP contenant du contenu Brotli peut être compromis sans interaction supplémentaire de l’utilisateur. La même chaîne d’exploitation s’applique aux applications Bun et aux scripts Python qui acceptent des entrées compressées, notamment dans les services web, les API ou les pipelines de traitement de données. La capacité d’exécuter du code arbitraire ouvre la porte à la prise de contrôle du serveur, à l’exfiltration de données ou à l’installation de logiciels malveillants.

Mesures d’atténuation et perspectives

Les mainteneurs de chaque projet ont recommandé de mettre à jour les paquets contenant libbrotli dès la publication d’un correctif. En attendant, il est conseillé de désactiver la décompression Brotli sur les points d’entrée non fiables ou d’appliquer une validation stricte des tailles d’en‑tête avant de transmettre les données au décodeur. Les équipes de sécurité doivent également surveiller les journaux d’accès pour détecter des requêtes contenant des flux Brotli anormaux. La divulgation publique de la faille incite les fournisseurs à renforcer les tests de robustesse des bibliothèques de compression, limitant ainsi les risques similaires à l’avenir.