La faille de Brotli, la compression web de Google, peut aussi toucher vos applications Python
Révélée par Node.js le 21 octobre, la faille du décodeur Brotli concerne aussi requests, httpx, Bun, Envoy et Istio. Les versions à installer et la parade provisoire.

Le correctif existait depuis février. Il dormait dans le code source de Brotli, le format de compression créé par Google et utilisé partout sur le Web, sans avoir été identifié à l'époque comme une correction de sécurité. Aucune version publiée ne l'intégrait. Selon la société de sécurité Aikido, il s'agit du correctif upstream 0ed4268.
Le 21 octobre, Node.js publie des mises à jour de sécurité qui corrigent dix failles, dont celle-ci, enregistrée sous la référence CVE-2026-111497. Il s'agit d'une écriture hors limites dans le décodeur Brotli : des données compressées piégées pourraient permettre à un attaquant non authentifié de corrompre la mémoire et d'exécuter du code. Selon Aikido, la fiche CVE lui attribue une note de 9,2 sur 10 (CVSS v4). Elle a été découverte par Khai Tran et Sylvie Mayer, de l'équipe Codex Security d'OpenAI. Depuis, la liste des logiciels touchés s'allonge, car le défaut se trouve dans Brotli lui-même et non dans Node.js.
Votre application Python peut être concernée sans le savoir
Les paquets Python Brotli et brotlicffi ont été corrigés le 22 octobre. Selon Aikido, la faille touche alors urllib3, donc la bibliothèque requests, dès que l'un de ces deux paquets est installé, ainsi que httpx avec son option brotli, aiohttp et Scrapy. « Votre code n'a pas besoin d'importer l'un ou l'autre paquet », précise Aikido : il suffit qu'ils soient présents dans l'environnement.
Deux chemins d'attaque sont décrits. Dans un sens, un serveur malveillant renvoie une réponse compressée en Brotli à une requête de votre application (un webhook, un aperçu de lien). Dans l'autre, votre framework décompresse le corps d'une requête entrante envoyée avec l'en-tête Content-Encoding: br. Aikido ajoute qu'il ne suffit pas de retirer Brotli de l'en-tête Accept-Encoding : un serveur peut en envoyer quand même.
Aucune attaque signalée, mais une démonstration réussie
Aucune exploitation réelle n'a été rapportée à ce stade. Selon Wiz, Ron Masas, de l'équipe offensive d'Imperva, a toutefois démontré l'exploitation sur des environnements Node.js non corrigés. Wiz affirme aussi, d'après ses propres données, que 91 % des environnements cloud qu'il observe contiennent des ressources vulnérables. Pour aider à l'inventaire, Trail of Bits a publié un outil qui repère l'usage de Brotli dans le code, rapporte la lettre Risky Bulletin.
Les versions à installer
Ici, la difficulté est surtout de trouver Brotli : la bibliothèque se cache souvent dans une dépendance indirecte. Voici les versions corrigées publiées par Wiz et Aikido :
- Node.js : 22.23.4, 24.22.1 ou 26.12.1. Les branches en fin de vie doivent passer à une version maintenue ;
- Python : Brotli 1.2.1 et brotlicffi 1.2.1.0 (Brotli touché de la 1.0.3 à la 1.2.0) ;
- Bibliothèque Brotli de Google : 1.0.10, 1.1.1 ou 1.2.1 selon la branche ;
- Bun : 1.4.4 ;
- Proxy Envoy : 1.37.8, 1.38.6, 1.39.3 ou 1.40.0 ;
- Istio : 1.29.9, 1.30.6 ou 1.31.2 ;
- Bibliothèque Go andybalholm/brotli : v1.2.7.
Wiz recommande de commencer par les services exposés à Internet, de reconstruire les images de conteneurs et de redémarrer les processus pour que la nouvelle version soit bien chargée. Pensez aussi à régénérer les fichiers de verrouillage des dépendances. Si la mise à jour doit attendre, désactivez la décompression Brotli des données non fiables ou rejetez les requêtes encodées en Brotli. Ce n'est qu'un palliatif.
La liste n'est sans doute pas close. Des copies de Brotli sont intégrées dans de nombreux autres logiciels, et Risky Bulletin s'attend à de nouveaux correctifs d'éditeurs dans les prochains mois.
Méthode : veille assistée par intelligence artificielle, sources vérifiées, article relu et validé par Frédéric LENQUETTE. Notre charte éditoriale.
Partager cet article