Vulnérabilité dans l'algorithme de compression Brotli

Microsoft a publié des correctifs de sécurité pour .NET afin de corriger une vulnérabilité dans Brotli, un algorithme de compression largement utilisé. Cette faille, connue sous le nom de CVE-2026-111497, a été corrigée par les équipes de Node.js et les développeurs de Brotli le 21 octobre.

Faille surnommée Node2Shell ou Broccoli2Shell

La faille, surnommée Node2Shell ou Broccoli2Shell, touche le décodeur de l'algorithme de compression conçu par Google. Elle concerne également .NET, la plateforme de Microsoft sur laquelle reposent de nombreux logiciels et services web, ce qui a conduit Redmond à publier des correctifs d'urgence quatre jours plus tard. La cause est une erreur de gestion de la mémoire, qui peut avoir de graves conséquences pour les applications vulnérables.

Méthode d'attaque et conséquences possibles

Un attaquant peut transmettre à une application .NET des données compressées avec Brotli, volontairement mal formées, par exemple dans une requête web. Si l'application accepte de les décompresser, le décodeur intégré à .NET peut poursuivre le traitement malgré l'erreur et écrire au-delà de la zone mémoire qui lui est allouée. Cette écriture hors limites peut faire planter le programme, exposer des informations sensibles ou permettre à l'attaquant d'obtenir des privilèges supplémentaires sur le système. L'attaque peut être menée à distance, sans authentification ni intervention de la victime.

Exploitation réussie par des chercheurs

Le 22 octobre, des chercheurs d'Imperva sont parvenus à exploiter cette même faille pour exécuter du code sur une version vulnérable de Node.js. En transmettant des données Brotli mal formées à leur application de test, ils ont réussi à la faire créer un fichier sur le serveur, alors que son code ne prévoyait pas une telle action. En remplaçant cette instruction par d'autres, un pirate pourrait accéder aux données sensibles et aux secrets utilisés par l'application, ou lancer d'autres commandes avec les droits dont elle dispose.

Une exposition qui dépend de l'usage de Brotli dans les applications .NET

L'exposition dépend de la manière dont les applications .NET utilisent Brotli. Certains serveurs ASP.NET Core peuvent décompresser les requêtes qu'ils reçoivent, tandis que les logiciels utilisant HttpClient peuvent traiter automatiquement les réponses compressées. D'autres applications appellent directement les fonctions Brotli de .NET. Dans les deux premiers cas, les développeurs doivent avoir activé ces fonctions, qui sont désactivées par défaut. La vulnérabilité concerne donc les applications qui décompressent des données qu'un attaquant peut contrôler, tandis que l'ancien .NET Framework n'est pas touché.

Microsoft fournit des versions mises à jour de .NET

Microsoft a publié les versions 8.0.33, 9.0.22 et 10.0.14 de .NET, ainsi que la troisième Release Candidate de .NET 11, pour corriger la faille. Les équipes concernées doivent installer ces mises à jour et redémarrer leurs applications. Lorsque ces applications intègrent leur propre environnement .NET, elles doivent également les recompiler et les redéployer afin d'intégrer le correctif. En attendant, les administrateurs qui ne peuvent pas appliquer immédiatement les correctifs peuvent désactiver la décompression Brotli des données provenant de sources non fiables.