Faille Brotli dans Claude Code : mettre à jour Node ne suffit pas

Mettez à jour l’exécutable Claude Code et les environnements Node.js ou Bun distincts, vérifiez l’installation réellement lancée et auditez les images de CI sans confondre version du client et preuve de correction du décodeur.

Sommaire
Faille Brotli dans Claude Code : mettre à jour Node ne suffit pas

Face à l’alerte concernant la faille Brotli dans Claude Code, mettez à jour l’exécutable que vous utilisez réellement, redémarrez-le et appliquez séparément les correctifs aux environnements Node.js ou Bun utilisés par vos autres outils. La mise à jour du Node.js système ne remplace pas l’environnement d’exécution intégré à Claude Code, y compris dans le binaire natif fourni par les installations actuelles via npm. Au 2026-10-23, la note de version d’Anthropic pour 2.1.308 ne confirme pas de correctif Brotli : ce numéro de version ne suffit donc pas à valider une revue de sécurité.

Pourquoi vérifier les agents qui récupèrent des pages web

Le risque concerne les processus qui décodent des données Brotli contrôlées par un attaquant. Un agent peut rencontrer ces données en récupérant de la documentation ou en extrayant le contenu d’un site, avant même que le modèle reçoive le texte lisible de la page.

CVE-2026-111497 est une écriture hors limites dans le décodeur Brotli de Google. La fiche CVE rédigée par Google décrit des risques de divulgation du contenu de la mémoire, de déni de service et d’exécution de code arbitraire à partir d’un flux compressé spécialement conçu. Google attribue à la vulnérabilité un score CVSS 4.0 de 9.2, de gravité Critical ; l’avis de sécurité de Node.js classe son impact sur Node.js comme High.

La documentation de fetch dans Bun indique que la décompression automatique des réponses est activée par défaut et prend en charge Brotli. Un outil utilisant fetch() dans Bun peut donc appeler le décodeur lorsqu’un serveur renvoie Content-Encoding: br.

Ce comportement justifie un audit des outils qui récupèrent du contenu localement. L’accès d’une opération donnée de Claude Code à un décodeur vulnérable dépend toutefois de son implémentation et de l’endroit où la récupération s’exécute. Un serveur MCP local, une commande shell et un service distant de récupération de contenu peuvent utiliser des environnements d’exécution différents.

Un pare-feu applicatif web protégeant les requêtes entrantes ne couvre pas tous ces chemins. L’avis de Vercel distingue explicitement les requêtes reçues des réponses récupérées par une application : ses protections WAF ne remplacent pas le correctif de l’environnement qui traite ces réponses.

Quelles versions corrigées sont confirmées ?

Les versions corrigées de Node.js et de Bun sont étayées par des sources primaires. La version minimale proposée pour Claude Code nécessite une confirmation distincte.

Au 2026-10-23 :

ComposantVersion corrigée confirméeÉlément à mettre à jour
Node.js 22.x22.23.4L’exécutable Node utilisé par l’application ou l’outil concerné
Node.js 24.x24.22.1L’exécutable Node utilisé par l’application ou l’outil concerné
Node.js 26.x26.12.1L’exécutable Node utilisé par l’application ou l’outil concerné
Versions officielles de Bun1.4.4L’installation autonome de Bun ou l’application qui l’intègre
Claude CodeLes sources officielles examinées ne permettent pas d’identifier la première version corrigéeMettre à jour le client par son canal d’installation et conserver les preuves propres à cette compilation

L’avis Node.js du 21 octobre répertorie les trois versions corrigées de Node. Comparez les versions au sein de la branche concernée : une installation de Node 24 nécessite 24.22.1 ou une version ultérieure intégrant le correctif, pas simplement un numéro supérieur à 22.23.4. Node.js 20 ne reçoit plus ce correctif ; Vercel recommande à ses utilisateurs de passer à une branche prise en charge.

La correction de Bun peut être vérifiée au-delà d’une annonce générale de sécurité. La pull request fusionnée de Jarred Sumner indique le passage à Brotli 1.2.1, et le fichier de dépendance du tag Bun 1.4.4 sélectionne cette version corrigée du projet amont. La version officielle a été publiée le 22 octobre.

L’affirmation propre à Claude vient du message de @ryaneshea publié le 22 octobre : son auteur rapporte avoir trouvé Bun 1.4.3 dans Claude Code 2.1.296 et recommande 2.1.308 ou une version ultérieure. Il s’agit d’un témoignage de la communauté ; cette correspondance entre versions n’est pas confirmée par Anthropic.

La note d’Anthropic pour 2.1.308 mentionne seulement des corrections de bugs et des améliorations de fiabilité. Son journal des modifications répertorie aussi 2.1.309, mais ne fournit pas la confirmation manquante concernant Bun ou le correctif Brotli dans 2.1.308. Mettez le client à jour rapidement, en distinguant les constats « client mis à jour » et « correctif du décodeur intégré confirmé ».

Mettez à jour l’installation de Claude Code réellement utilisée

Identifiez l’installation active avant de la modifier. Mettre à jour une copie ne sert à rien si votre terminal, votre éditeur ou votre exécuteur de tâches continue d’en lancer une autre.

Dans Bash, exécutez :

type -a claude
claude --version
claude doctor

type -a affiche les alias du shell, les fonctions et les chemins des exécutables correspondants. La référence de la CLI décrit claude doctor comme un diagnostic en lecture seule de l’installation et des paramètres, qui ne démarre pas de session.

Enregistrez votre travail et quittez les sessions Claude Code existantes avant de remplacer leur exécutable. Choisissez ensuite la procédure de mise à jour adaptée à votre installation.

Installation native

Exécutez cette commande dans Bash :

claude update

L’outil de mise à jour respecte autoUpdatesChannel et les contraintes de version applicables. Un résultat indiquant que l’installation est à jour peut donc signifier qu’elle utilise la version la plus récente autorisée par votre configuration.

Pour les installations natives, les paramètres du canal de publication distinguent latest du canal stable, qui reçoit les versions avec un décalage. Vérifiez /config → Auto-update channel ; le réglage personnel se trouve dans ~/.claude/settings.json. Pour les déploiements gérés de façon centralisée, mettez à jour conjointement la version déployée et sa politique de mise à jour.

Installation via npm

Mettez à jour une installation gérée par npm dans Bash :

npm install -g @anthropic-ai/claude-code@latest

Les instructions actuelles pour npm exigent Node.js 22 ou une version ultérieure pour installer le paquet, qui fournit le même binaire natif que l’installateur autonome. Utilisez une version corrigée de Node figurant dans le tableau ci-dessus. La documentation recommande la commande d’installation explicite plutôt que npm update -g, qui peut conserver le paquet dans une ancienne plage de versions.

Pour Homebrew, utilisez brew upgrade claude-code ou brew upgrade claude-code@latest, selon le cask installé. Pour WinGet, exécutez winget upgrade Anthropic.ClaudeCode dans PowerShell. Ces méthodes suivent leurs propres règles de mise à jour par gestionnaire de paquets.

Une fois la mise à jour adaptée terminée, ouvrez un nouveau terminal. Dans Bash, vérifiez :

hash -r
command -v claude
claude --version
claude doctor

La version doit correspondre à celle que vous vouliez installer, et la commande trouvée doit renvoyer à l’installation visée. Si command -v identifie une fonction ou un alias, consultez la sortie précédente de type -a pour déterminer ce qu’il lance.

Redémarrez séparément les sessions intégrées à l’éditeur et celles qui fonctionnent sans supervision. Vérifier un exécutable fraîchement lancé dans le terminal ne prouve pas qu’un ancien processus a été remplacé.

Si la mise à jour échoue ou si l’ancienne version reste active

Choisissez la correction en fonction du symptôme observé. Le guide de dépannage de l’installation d’Anthropic décrit les conflits entre installations, les échecs de mise à jour et l’absence de binaires après une installation via npm.

SymptômeVérification et correctionValidation
La mise à jour se termine, mais claude --version affiche toujours l’ancienne versionUtilisez type -a claude et which -a claude pour repérer les installations concurrentes. Corrigez le lanceur ou l’entrée de PATH qui sélectionne encore l’ancienne copie.Ouvrez un nouveau terminal, puis vérifiez à nouveau la commande trouvée et sa version.
Un lanceur personnalisé ~/.local/bin/claude démarre encore une ancienne versionExaminez sa cible. L’outil de mise à jour natif conserve les lanceurs personnalisés : actualisez donc aussi la version sélectionnée par le lanceur lors du déploiement.Vérifiez la version en passant par ce lanceur, pas seulement en exécutant le binaire nouvellement téléchargé.
Error: claude native binary not installed.Vérifiez si npm a omis des dépendances facultatives ou ignoré le script postinstall. Rétablissez les étapes nécessaires à l’installation et réinstallez le paquet.claude --version s’exécute correctement.
Auto-update failed · Run claude doctorExécutez claude doctor et examinez l’échec d’installation ou de téléchargement signalé. Suivez la section correspondante du guide.Relancez la mise à jour adaptée, puis vérifiez la version attendue dans un nouveau processus.

Si l’outil ne trouve aucune version autorisée plus récente, vérifiez le canal de publication et le plafond de version imposé centralement avant de considérer l’intervention comme terminée. Un contrôle d’installation réussi établit que le programme démarre ; il ne teste pas la vulnérabilité Brotli.

Peut-on connaître la version de Bun intégrée à Claude Code ?

Les commandes documentées de Claude indiquent la version de l’application et l’état de l’installation. La documentation CLI examinée ne fournit pas de commande prise en charge pour afficher la version du Bun intégré.

bun --version vérifie un exécutable Bun distinct présent dans PATH. De même, demander sa version à un processus Node du système renseigne sur ce processus. Aucune de ces mesures n’identifie l’environnement d’exécution compilé dans Claude Code.

Bun documente bien BUN_BE_BUN=1 pour les exécutables autonomes. Ce mécanisme n’est toutefois pas documenté comme un diagnostic de Claude Code, et le signalement #24575 de kk-mats concernant Claude Code rapporte un comportement qui varie selon la version. Ne supposez pas qu’il constitue un contrôle de sécurité fiable pour les installations de Claude.

Le manifeste publié de Claude Code 2.1.308 contient des informations de version, de compilation, de plateforme et de somme de contrôle, mais pas la version du composant Bun. La procédure d’Anthropic pour vérifier le manifeste signé permet d’établir qu’un binaire correspond à la version du fournisseur. Confirmer la correction du décodeur exige en plus des preuves concernant les composants ou les correctifs associés à cet artefact précis.

Pour une revue de sécurité d’équipe, consignez la version de Claude, la plateforme, la source d’installation, l’exécutable actif et sa somme de contrôle. Demandez une confirmation au fournisseur pour cette version et cette plateforme exactes si vous devez attester la correction de l’environnement intégré. En attendant ces preuves, notez « client mis à jour ; correctif de l’environnement intégré non vérifié » et suspendez les récupérations de contenu non fiable effectuées sans supervision dans les cas concernés, si votre évaluation de l’exposition l’exige.

Vérifiez les postes de l’équipe, les conteneurs et les exécuteurs de CI

Exécutez l’inventaire dans chaque environnement qui réalise effectivement des tâches de l’agent. Les résultats du portable d’un développeur ne décrivent ni un conteneur, ni le compte d’un exécuteur auto-hébergé, ni un serveur MCP déployé séparément.

Utilisez ce bloc Bash dans une tâche existante de gestion du parc informatique ou dans une étape de CI :

set -u
uname -srm
id -un

for tool in claude node bun; do
  if executable=$(type -P "$tool"); then
    printf '%s\t%s\t' "$tool" "$executable"
    "$executable" --version || exit 1
  else
    printf '%s\tNOT_FOUND\n' "$tool"
  fi
done

La sortie indique le système d’exploitation, l’utilisateur d’exécution et l’exécutable sélectionné dans PATH pour chaque outil, suivi de sa version. NOT_FOUND est un résultat d’inventaire : une installation native de Claude n’exige pas la présence d’une commande Bun distincte.

Ce script ne produit pas de verdict de sécurité PASS. Comparez les résultats de Node et du Bun autonome aux versions corrigées confirmées, puis évaluez séparément les preuves concernant l’artefact Claude. La commande Bash type -P recherche les chemins des exécutables ; les wrappers du shell et les exécutables choisis explicitement dans la configuration doivent faire l’objet de leur propre inspection.

Pour mettre à jour les environnements de l’équipe :

  1. Vérifiez l’environnement d’exécution. Lancez le bloc avec le compte du service, dans le conteneur final ou l’environnement de l’exécuteur, après la configuration habituelle de PATH. Inspectez séparément les chemins utilisés par les serveurs MCP, les processus qui utilisent un SDK et les intégrations de l’éditeur.
  2. Mettez à jour la configuration de build ou de déploiement. Remplacez les versions affectées de Node/Bun et l’installation de Claude. Reconstruisez les images de façon qu’une ancienne couche d’installation en cache ne conserve pas l’exécutable précédent.
  3. Remplacez les charges de travail en cours. Recréez les conteneurs et redémarrez les exécuteurs ou services qui utilisent encore l’ancienne installation. Réexécutez l’inventaire dans une nouvelle charge de travail et conservez l’empreinte de l’image, son digest, avec les résultats.
  4. Vérifiez un flux de travail habituel. Confirmez que l’environnement mis à jour accomplit toujours l’opération attendue par votre équipe. Consignez ce résultat comme un contrôle de compatibilité, séparément des preuves relatives au correctif du décodeur.

Pour une installation autonome de Bun gérée par Bun lui-même, la commande de mise à jour documentée pour cette version s’exécute dans Bash :

bun upgrade
bun --version

Cela met à jour cette installation de Bun. Une application qui intègre Bun nécessite une nouvelle compilation de l’application elle-même.

Les passerelles API personnalisées nécessitent aussi un client à jour

Un ANTHROPIC_BASE_URL personnalisé change la destination de l’API ; il ne remplace pas l’exécutable local de Claude Code. Gardez le client à jour même si les requêtes passant par votre passerelle fonctionnent.

Le journal officiel des modifications de Claude Code décrit deux correctifs distincts de compatibilité avec les passerelles :

  • 2.1.305 : corrige une régression de 2.1.304 qui pouvait faire échouer toutes les requêtes lorsque Vertex, Bedrock ou un autre point de terminaison ou une passerelle refusait la recherche d’outils, y compris dans les configurations interdisant ToolSearch ou l’omettant dans --tools. Le client réessaie désormais sans cette recherche.
  • 2.1.307 : cesse d’envoyer l’en-tête bêta prompt-caching-scope via les passerelles utilisant un ANTHROPIC_BASE_URL personnalisé et sur Foundry, où il n’a aucun effet.

Après la mise à jour, répétez le petit flux de travail qui échouait auparavant via la passerelle. Si l’échec persiste, examinez la réponse et la configuration du point de terminaison avec le client actuel : une affirmation concernant une mise à jour Brotli n’explique pas toutes les erreurs de passerelle. Une requête réussie confirme la compatibilité de ce flux, tandis que l’évaluation du correctif de l’environnement intégré reste une vérification distincte.

Prêt à optimiser votre workflow LLM ?

Connectez vos modèles via une API unique, gérez les clés et maîtrisez vos dépenses d’IA.

Commencer gratuitement