Vulnerabilidad Brotli en Claude Code: actualizar Node no basta

Actualiza el ejecutable de Claude Code y los entornos Node.js o Bun independientes, verifica qué instalación se ejecuta y revisa las imágenes de CI sin confundir la versión de Claude con una prueba de que el decodificador está corregido.

Índice
Vulnerabilidad Brotli en Claude Code: actualizar Node no basta

Ante la alerta de vulnerabilidad Brotli en Claude Code, actualiza el ejecutable que realmente utilizas, reinícialo y aplica por separado los parches a los procesos de Node.js o Bun que usan tus otras herramientas. Actualizar Node.js en el sistema no sustituye el entorno de ejecución integrado en Claude Code, incluido el ejecutable nativo que distribuyen las instalaciones actuales mediante npm. A fecha de 2026-10-23, la nota de Anthropic para 2.1.308 no confirma una corrección de Brotli, por lo que ese número de versión no basta para dar por cerrada una revisión de seguridad.

Por qué conviene revisar los agentes que descargan páginas web

El riesgo aparece cuando un proceso decodifica datos Brotli controlados por un atacante. Un agente puede encontrarlos al descargar documentación o extraer contenido de un sitio web, antes de que el modelo reciba texto legible de la página.

CVE-2026-111497 es una escritura fuera de límites en el decodificador Brotli de Google. El registro CVE redactado por Google describe posibles filtraciones de memoria, denegación de servicio y ejecución arbitraria de código a partir de un flujo comprimido manipulado. Google asigna a la vulnerabilidad una puntuación CVSS 4.0 de 9.2, con gravedad Critical; el aviso de seguridad de Node.js clasifica su impacto en Node.js como High.

La documentación de fetch de Bun indica que la descompresión automática de respuestas está activada de forma predeterminada y admite Brotli. Por tanto, una herramienta implementada con fetch() de Bun puede llegar al decodificador cuando un servidor devuelve Content-Encoding: br.

Esto justifica auditar las herramientas que descargan contenido localmente. Que una operación concreta de Claude Code llegue a un decodificador afectado depende de su implementación y de dónde se ejecute la descarga. Un servidor MCP local, un comando de la shell y un servicio remoto de obtención de contenido pueden usar entornos de ejecución diferentes.

Un firewall de aplicaciones web que protege las solicitudes entrantes no cubre todas estas vías. El aviso de Vercel distingue expresamente entre las solicitudes entrantes y las respuestas que descarga una aplicación: sus protecciones WAF no sustituyen el parche del entorno de ejecución que procesa esas respuestas.

¿Qué versiones con corrección están confirmadas?

Las versiones corregidas de Node.js y Bun cuentan con pruebas de fuentes primarias; la versión mínima propuesta para Claude Code necesita una confirmación independiente.

A fecha de 2026-10-23:

ComponenteVersión con corrección confirmadaQué actualizar
Node.js 22.x22.23.4El ejecutable de Node que utiliza esa aplicación o herramienta
Node.js 24.x24.22.1El ejecutable de Node que utiliza esa aplicación o herramienta
Node.js 26.x26.12.1El ejecutable de Node que utiliza esa aplicación o herramienta
Versiones oficiales de Bun1.4.4La instalación independiente de Bun o la aplicación que lo integra
Claude CodeLas fuentes oficiales revisadas no permiten identificar la primera versión corregidaActualizar el cliente mediante su canal de instalación y conservar pruebas específicas de la compilación

El aviso de Node.js del 21 de octubre enumera las tres versiones corregidas de Node. Compara versiones dentro de la rama correspondiente: una instalación de Node 24 necesita 24.22.1 o una versión posterior con la corrección; no basta con que su número sea mayor que 22.23.4. Node.js 20 ya no recibe esta corrección; Vercel indica que esos usuarios deben migrar a una rama con soporte.

La corrección de Bun se puede rastrear más allá de un anuncio general de seguridad. La pull request de Jarred Sumner que se incorporó al repositorio identifica la actualización a Brotli 1.2.1, y el archivo de dependencia de la etiqueta Bun 1.4.4 selecciona esa versión corregida del proyecto original. La versión oficial se publicó el 22 de octubre.

La afirmación sobre las versiones de Claude procede de la publicación de @ryaneshea del 22 de octubre: el autor informó de que había encontrado Bun 1.4.3 en Claude Code 2.1.296 y recomendó 2.1.308 o posterior. Es un informe de un miembro de la comunidad, no una correspondencia de versiones confirmada por Anthropic.

La nota de Anthropic para 2.1.308 solo menciona «correcciones de errores y mejoras de fiabilidad». Su registro de cambios también incluye 2.1.309, pero no aporta la confirmación que falta sobre Bun o el parche de Brotli en 2.1.308. Actualiza cuanto antes, manteniendo separados los resultados «cliente actualizado» y «parche del decodificador integrado confirmado».

Actualiza la instalación de Claude Code que realmente utilizas

Identifica la instalación activa antes de modificarla. Actualizar una copia no ayudará si tu terminal, editor o ejecutor de tareas sigue iniciando otra.

En Bash, ejecuta:

type -a claude
claude --version
claude doctor

type -a muestra los alias de la shell, las funciones y las rutas de los ejecutables coincidentes. La referencia de la CLI describe claude doctor como un diagnóstico de solo lectura de la instalación y la configuración que no inicia una sesión.

Guarda tu trabajo y sal de las sesiones de Claude Code abiertas antes de sustituir su ejecutable. Elige el procedimiento de actualización que corresponda a tu instalación.

Instalación nativa

Ejecuta lo siguiente en Bash:

claude update

El actualizador respeta autoUpdatesChannel y las restricciones de versión aplicables. Por tanto, un resultado que indique que está actualizado puede significar que tienes la versión más reciente permitida por tu configuración.

Para las instalaciones nativas, los ajustes del canal de versiones distinguen latest del canal stable, que recibe las versiones con retraso. Revisa /config → Auto-update channel; el ajuste personal se guarda en ~/.claude/settings.json. Si el despliegue se gestiona centralmente, actualiza la versión desplegada y su política de actualización de forma coordinada.

Instalación mediante npm

Actualiza una instalación gestionada por npm en Bash:

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

Las instrucciones actuales de instalación mediante npm requieren Node.js 22 o posterior para instalar el paquete, que distribuye el mismo binario nativo que el instalador independiente. Utiliza una versión de Node con la corrección, de la tabla anterior. La documentación recomienda el comando explícito de instalación en lugar de npm update -g, que puede mantener el paquete dentro de un rango de versiones anterior.

Para Homebrew, utiliza brew upgrade claude-code o brew upgrade claude-code@latest, según el paquete cask instalado. Para WinGet, ejecuta winget upgrade Anthropic.ClaudeCode en PowerShell. Estas opciones tienen sus propias reglas de actualización mediante gestores de paquetes.

Cuando termine la actualización correspondiente, abre un terminal nuevo. En Bash, verifica:

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

La versión debe coincidir con la que pretendías instalar, y el comando encontrado debe corresponder a la instalación prevista. Si command -v identifica una función o un alias, revisa la salida anterior de type -a para determinar qué inicia.

Reinicia por separado las sesiones integradas en el editor y las que funcionan sin supervisión. Comprobar un ejecutable recién iniciado desde el terminal no demuestra que se haya sustituido un proceso anterior.

Si la actualización falla o sigue activa la versión antigua

Relaciona el síntoma observado con su causa para elegir la corrección adecuada. La guía de resolución de problemas de instalación de Anthropic documenta conflictos entre instalaciones, fallos de actualización y binarios ausentes en instalaciones mediante npm.

SíntomaComprobación y acción correctivaVerificación
La actualización termina, pero claude --version sigue mostrando la versión antiguaUtiliza type -a claude y which -a claude para localizar instalaciones que compiten entre sí. Corrige el lanzador o la entrada de PATH que sigue seleccionando la copia antigua.Abre un terminal nuevo y vuelve a comprobar el comando encontrado y su versión.
Un lanzador personalizado en ~/.local/bin/claude sigue iniciando una versión antiguaRevisa su destino. El actualizador nativo conserva los lanzadores personalizados, por lo que debes actualizar la versión seleccionada por el lanzador como parte del despliegue.Comprueba la versión a través de ese lanzador, no solo ejecutando el binario recién descargado.
Error: claude native binary not installed.Comprueba si npm omitió dependencias opcionales o no ejecutó el script postinstall. Restablece los pasos de instalación necesarios y reinstala el paquete.claude --version se ejecuta correctamente.
Auto-update failed · Run claude doctorEjecuta claude doctor y atiende al fallo de instalación o descarga que indique. Sigue el apartado correspondiente de la guía.Vuelve a ejecutar el actualizador apropiado y verifica la versión prevista en un proceso nuevo.

Si el actualizador no encuentra una versión permitida más reciente, revisa el canal de versiones y el límite máximo impuesto centralmente antes de dar el trabajo por terminado. Una comprobación satisfactoria de la instalación demuestra que el programa arranca; no comprueba la vulnerabilidad de Brotli.

¿Se puede consultar la versión de Bun integrada en Claude Code?

Los comandos documentados de Claude permiten conocer la versión de la aplicación y el estado de la instalación. La documentación de la CLI revisada no ofrece un comando admitido para mostrar la versión del Bun integrado.

Ejecutar bun --version comprueba un ejecutable de Bun independiente que está en PATH. Del mismo modo, consultar la versión de un proceso de Node del sistema describe ese proceso. Ninguna de esas mediciones identifica el entorno de ejecución compilado dentro de Claude Code.

Bun sí documenta BUN_BE_BUN=1 para ejecutables autocontenidos. Sin embargo, no está documentado como diagnóstico de Claude Code, y la incidencia #24575 de kk-mats sobre Claude Code informa de un comportamiento que depende de la versión. No lo uses como una comprobación de seguridad cuya fiabilidad des por sentada en instalaciones de Claude.

El manifiesto publicado de Claude Code 2.1.308 contiene información sobre la versión, la compilación, las plataformas y las sumas de verificación, pero no sobre la versión del componente Bun. El procedimiento de Anthropic para verificar el manifiesto firmado permite demostrar que un binario coincide con la versión del proveedor. Para determinar si el decodificador está corregido, también hacen falta pruebas sobre sus componentes o parches vinculadas a ese artefacto.

En una revisión de seguridad del equipo, registra la versión de Claude, la plataforma, el origen de la instalación, el ejecutable activo y su suma de verificación. Solicita confirmación al proveedor para esa versión y plataforma exactas si necesitas certificar la corrección del entorno integrado. Hasta disponer de esas pruebas, registra el resultado como «cliente actualizado; parche del entorno de ejecución integrado sin verificar» y suspende las tareas afectadas que descargan contenido no confiable sin supervisión si así lo exige tu evaluación del riesgo de exposición.

Revisa los equipos de desarrollo, los contenedores y los ejecutores de CI

Ejecuta el inventario dentro de cada entorno que realmente realiza trabajo del agente. Los resultados del portátil de un desarrollador no describen un contenedor, la cuenta de un ejecutor alojado en tu infraestructura ni un servidor MCP desplegado de forma independiente.

Utiliza este bloque de Bash en una tarea existente de gestión del parque de equipos o en un paso 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 salida identifica el sistema operativo, el usuario de ejecución y el ejecutable seleccionado en PATH para cada herramienta, seguido de su versión. NOT_FOUND es un resultado del inventario: una instalación nativa de Claude no necesita que exista un comando Bun independiente.

Este script no imprime un resultado de seguridad PASS. Compara las versiones de Node y de Bun independiente con las versiones corregidas confirmadas, y evalúa por separado las pruebas del artefacto de Claude. type -P de Bash busca rutas de ejecutables; las funciones o scripts que actúan como intermediarios de lanzamiento y los ejecutables seleccionados explícitamente en la configuración requieren su propia inspección.

Para actualizar los entornos del equipo:

  1. Comprueba el entorno de ejecución. Ejecuta el bloque como el usuario del servicio, dentro del contenedor final o del entorno del ejecutor, después de su configuración habitual de PATH. Inspecciona por separado las rutas de los ejecutables que usan los servidores MCP, los procesos que utilizan un SDK y las integraciones del editor.
  2. Actualiza la definición de compilación o despliegue. Sustituye las versiones afectadas de Node/Bun y la instalación de Claude. Reconstruye las imágenes de modo que una capa antigua de instalación en caché no conserve el ejecutable anterior.
  3. Sustituye las cargas de trabajo en ejecución. Vuelve a crear los contenedores y reinicia los ejecutores o servicios que todavía utilizan la instalación antigua. Repite el inventario en una carga de trabajo nueva y conserva el digest de la imagen junto con los resultados.
  4. Prueba un flujo de trabajo habitual. Confirma que el entorno actualizado sigue completando la operación de la herramienta que necesita tu equipo. Regístralo como una comprobación de compatibilidad, separada de las pruebas del parche del decodificador.

Para una instalación independiente de Bun gestionada por el propio Bun, el comando de actualización documentado en la versión, ejecutado en Bash, es:

bun upgrade
bun --version

Esto actualiza esa instalación de Bun. Una aplicación que integra Bun necesita una nueva compilación de la propia aplicación.

Las pasarelas de API personalizadas también necesitan clientes actualizados

Un ANTHROPIC_BASE_URL personalizado cambia el destino de la API; no sustituye el ejecutable local de Claude Code. Mantén el cliente actualizado aunque las solicitudes a través de tu pasarela funcionen.

El registro oficial de cambios de Claude Code documenta dos correcciones distintas de compatibilidad con pasarelas:

  • 2.1.305: corrige una regresión de 2.1.304 que podía hacer fallar todas las solicitudes cuando Vertex, Bedrock u otro endpoint o pasarela rechazaba la búsqueda de herramientas, incluidas las configuraciones que prohibían ToolSearch o lo excluían de --tools. Ahora el cliente vuelve a intentar la solicitud sin esa búsqueda.
  • 2.1.307: deja de enviar la cabecera beta prompt-caching-scope a través de pasarelas con un ANTHROPIC_BASE_URL personalizado y en Foundry, donde no tiene efecto.

Después de actualizar, repite el pequeño flujo de trabajo que antes fallaba a través de la pasarela. Si sigue fallando, investiga la respuesta y la configuración del endpoint con el cliente actual: una afirmación sobre una actualización de Brotli no explica todos los errores de la pasarela. A su vez, una solicitud correcta confirma la compatibilidad de ese flujo, mientras que la evaluación del parche del entorno integrado sigue siendo una comprobación independiente.

¿Quieres optimizar tu flujo de trabajo con LLM?

Conecta modelos mediante una API, gestiona claves y controla el gasto en IA.

Empezar gratis