Aller au contenu
Blog

Google · Brotli · Node.js

CVE-2026-111497 Brotli : le décodeur de Google au CISA KEV, Node.js, .NET, Envoy et Bun concernés

CVE-2026-111497 (9.8) : dépassement de tampon dans le décodeur Brotli 1.0.3 à 1.2.0, au CISA KEV. Node.js, .NET, Envoy, Istio, Bun : versions et correctifs.

6 min de lectureCVE-2026-111497

CVE-2026-111497 a été publiée par NVD le 22 octobre 2026. Cinq jours plus tard, le 27 octobre, la CISA l'a ajoutée à son catalogue KEV, avec une échéance au 10 novembre.

Ce n'est pas une faille dans un produit, mais dans une bibliothèque de compression : le décodeur Brotli de Google. Brotli sert à décompresser du contenu HTTP (Content-Encoding: br), des polices WOFF2, des archives, des colonnes de bases analytiques. Il est embarqué dans Node.js, .NET, Envoy, Bun, ClickHouse, DuckDB, Apache Arrow… La configuration NVD liste à elle seule une quinzaine de produits.

Autrement dit : la question n'est pas « est-ce que j'utilise Brotli ? », mais « où est-il embarqué chez moi ? ».


La vulnérabilité

ChampValeur
CVECVE-2026-111497
CVSS 3.1 (NVD)9.8 (CRITICAL) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 4.0 (Google)9.2 (CRITICAL) — AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
TypeValeur de retour non vérifiée (CWE-252), écriture hors limites (CWE-787)
ComposantDécodeur Brotli (c/dec/decode.c)
Statut NVDAnalyzed
Publication NVD2026-10-22
Ajout CISA KEV2026-10-27
Échéance CISA2026-11-10

Description NVD (extrait) :

A buffer overflow vulnerability in the Brotli decoder (c/dec/decode.c) in Google Brotli versions 1.0.3 through 1.2.0 on all platforms allows a remote unauthenticated attacker to corrupt adjacent decoder state memory […]

Ce que permet un flux Brotli piégé

Selon NVD, un attaquant distant et non authentifié qui fait décoder un flux Brotli spécialement construit peut :

  • corrompre la mémoire de l'état du décodeur ;
  • lire des contenus mémoire sensibles ;
  • provoquer un déni de service ;
  • potentiellement exécuter du code arbitraire.

La fiche KEV précise la cause : une valeur de retour non vérifiée dans le décodeur. Le code continue comme si une opération avait réussi, et écrit ensuite hors du tampon prévu.

Pourquoi la surface est aussi large

Un décodeur de compression traite par nature des données venues de l'extérieur : le corps d'une requête HTTP compressée, une réponse d'un serveur amont, un fichier téléversé, une police web. Tout service qui décompresse du Brotli reçu d'un tiers expose ce code, souvent sans que l'équipe qui l'exploite le sache.

C'est ce qui explique l'écart entre les deux scores : NVD retient le pire cas (9.8), Google ajoute AT:P (des conditions préalables à l'attaque) et arrive à 9.2. Les deux restent CRITICAL.


Versions affectées

Brotli lui-même

BrancheVersions affectées (NVD)Première version hors plage
1.01.0.3 et suivantes, avant 1.0.101.0.10
1.11.1.0, avant 1.1.11.1.1
1.21.2.0, avant 1.2.11.2.1

La description NVD le dit explicitement : mettre à jour toute bibliothèque ou binaire Brotli entre 1.0.3 et 1.2.0 vers 1.0.10, 1.1.1 ou 1.2.1.

Produits qui l'embarquent (configuration NVD)

ProduitVersions affectées (NVD)
Node.jsantérieures à 22.23.4 ; 23.0.0 et suivantes avant 24.22.1 ; 25.0.0 et suivantes avant 26.12.1
Microsoft .NET8.0 avant 8.0.33 ; 9.0 avant 9.0.22 ; 10.0 avant 10.0.14 ; 11.0.0 preview 1 à 7, RC1 et RC2
Envoyantérieures à 1.37.8 ; 1.38 avant 1.38.6 ; 1.39 avant 1.39.3
Istioantérieures à 1.29.9 ; 1.30 avant 1.30.6 ; 1.31 avant 1.31.2
Bunantérieures à 1.4.4
brotlicffi (Python)antérieures à 1.2.1.0
andybalholm/brotli (Go)antérieures à 1.2.7
ClickHousejusqu'à 26.10.2.103 inclus
DuckDBjusqu'à 2.0.0 inclus
Apache Arrowjusqu'à 26.0.0 inclus, et 27.0.0-dev
TianoCore EDK2jusqu'à 202608 inclus
7-Zip-zstdjusqu'à 26.02-1.5.7-r2 inclus
p7zipjusqu'à 16.02 inclus
Google woff2listé sans borne de version
Debian12

⚠️ Ce sont des bornes issues de NVD, pas forcément la version à installer. Pour les produits listés « jusqu'à … inclus », NVD ne donne pas de version corrigée : vérifie l'advisory de l'éditeur. Pour Node.js, .NET et Debian, les annonces de sécurité correspondantes sont citées dans les références NVD.

Cette liste n'est pas exhaustive. Toute application qui lie statiquement Brotli, ou qui embarque sa propre copie (images de conteneurs, binaires Go ou Rust, appliances), peut être concernée sans apparaître dans NVD.


Détection

Le plus dur ici est l'inventaire, pas la détection d'une attaque.

Trouver les copies de Brotli :

# Bibliothèques système
ldconfig -p | grep -i brotli
dpkg -l | grep -i brotli      # Debian / Ubuntu
rpm -qa | grep -i brotli      # RHEL / Fedora

# Version embarquée dans Node.js
node -p "process.versions.brotli"
  • Dépendances applicatives : chercher brotli, brotlicffi, andybalholm/brotli dans les fichiers de verrouillage (package-lock.json, requirements.txt, go.sum, Cargo.lock)
  • Images de conteneurs : un scanner d'images (SBOM) remonte les copies de Brotli embarquées dans les couches
  • Proxys et maillages de services : Envoy et Istio décompressent le trafic qui les traverse

Signes d'exploitation : plantages répétés (segfault) de processus qui décompressent du contenu, en particulier après réception de requêtes avec Content-Encoding: br.


Mitigation

1. Mettre à jour Brotli et tout ce qui l'embarque

L'échéance CISA est le 10 novembre. Mettre à jour la bibliothèque système ne suffit pas : Node.js, .NET, Bun, Envoy embarquent leur propre copie et doivent être mis à jour séparément.

2. Reconstruire les images

Un conteneur construit avant le correctif garde l'ancienne version. Reconstruire et redéployer, pas seulement mettre à jour l'hôte.

3. En attendant, réduire l'exposition

Là où c'est possible, refuser Content-Encoding: br sur les requêtes entrantes au niveau du proxy ou du serveur web. C'est une mesure temporaire : elle ne protège pas un client qui télécharge un contenu Brotli depuis un serveur malveillant.

4. Triage forensique

L'entrée KEV renvoie à la directive BOD 26-04, qui exige un triage forensique en plus de la mise à jour. Pour un service exposé qui a pu traiter du Brotli d'origine non maîtrisée, vérifier les processus, les connexions sortantes et les fichiers modifiés récemment.


Pourquoi surveiller en continu les composants de votre parc

Une faille dans une bibliothèque de compression ne porte le nom d'aucun produit que tu as acheté. Elle arrive par Node.js, par .NET, par le proxy devant tes services. Sans inventaire des versions qui tournent, impossible de savoir en cinq jours ce qui est exposé.

Avec cveo.tech, inventorie tes serveurs, runtimes et équipements avec leur version exacte, et reçois une alerte automatique dès qu'une CVE qui les concerne est publiée ou entre au catalogue CISA KEV.

Sache quelles CVE touchent les versions que tu fais tourner.

Ajoute le produit et sa version : cveo.tech affiche tout de suite les CVE qui le concernent, puis t'alerte par email quand une nouvelle CVE le concerne — y compris avant que NVD ait fini son analyse. Gratuit, il suffit d'un compte.

Chaque lundi

Les CVE critiques de la semaine, dans ta boîte mail

Un email par semaine : les vulnérabilités CVSS ≥ 9 publiées ces sept derniers jours, et nos dernières analyses. Rien d'autre.

Double confirmation par email. Désinscription en un clic, à tout moment.