Reservar cita
← Volver al blogIT Security

Brotli2Shell (CVE-2026-111497): lo que las empresas deben saber ahora sobre Node2Shell y HTTP2Shell

27 de octubre de 2026

Brotli2Shell de un vistazo

Brotli2Shell (CVE-2026-111497), también llamada Node2Shell o HTTP2Shell, es una vulnerabilidad crítica del decodificador Brotli de Google, muy extendido. Como autoridad de numeración CVE competente, Google la califica con CVSS v4.0 9.2. Se divulgó el 21 de octubre de 2026 con la actualización de seguridad de Node.js. Datos comprimidos con Brotli especialmente manipulados pueden corromper la memoria del proceso, revelar contenido de la memoria, provocar la caída de procesos y, en el peor de los casos, permitir la ejecución de código sin autenticación. El fallo no está en una única aplicación, sino en una biblioteca integrada en Node.js, Bun, .NET, paquetes de Python, Envoy, Istio, bibliotecas Java, bases de datos y herramientas multimedia. Nuestro informe de situación detallado, con matriz de versiones, comprobación de versiones, plan de 7 puntos y comprobación de exposición: https://brotli2shell.wiz.vamisec.com/en/

Qué ocurre técnicamente: un valor de retorno con dos significados

Brotli es un formato de compresión que los servidores web y las CDN utilizan para reducir el tamaño de los contenidos. El decodificador funciona como flujo y, cuando le faltan datos de entrada, acumula bytes en un búfer interno de ocho bytes. Ante un cambio de bloque imposible, la función DecodeBlockTypeAndLength() devolvía el mismo valor que cuando faltaban datos de entrada. Por ello, el decodificador interpretaba el error de formato como una pausa, añadía más bytes y escribía más allá del final del búfer. Según los análisis, el noveno byte sobrescribe el campo de longitud del búfer, lo que hace controlables las escrituras posteriores. El fallo lo descubrieron Khai Tran y Sylvie Mayer, de OpenAI Codex Security. Cabe destacar que la corrección está en el código fuente público de Brotli desde el 27 de febrero de 2026, pero las versiones con la corrección no se publicaron hasta el 21 de octubre. Los proyectos que utilizaban versiones fijadas de Brotli siguieron siendo vulnerables durante casi ocho meses.

Qué productos están afectados y qué versiones corrigen el fallo

Están afectadas las versiones de Google Brotli de la 1.0.3 a la 1.2.0; la vulnerabilidad está corregida en 1.0.10, 1.1.1 y 1.2.1. Versiones de producto corregidas: Node.js 22.23.4, 24.22.1 y 26.12.1, Bun 1.4.4, .NET 8.0.33, 9.0.22 y 10.0.14, los paquetes de Python brotli 1.2.1 y brotlicffi 1.2.1.0, Envoy 1.36.12, 1.37.8, 1.38.6, 1.39.3 y 1.40.0, Istio 1.29.9, 1.30.6 y 1.31.2, así como Brotli4j 1.24.0. Node.js 20 y las ramas anteriores no reciben corrección; según Microsoft, .NET Framework no está afectado. Para ClickHouse y libjxl, a través de la cual también se ve afectado FFmpeg, las correcciones ya se han integrado en el código, pero aún no se han publicado. DuckDB y Apache Arrow aún no tienen corrección (situación a 27 de octubre de 2026). Los módulos Brotli de nginx y Apache solo comprimen y no están afectados; el código fuente actual de Chrome y Firefox usa revisiones de Brotli de marzo y abril de 2026 con la corrección; no se ha publicado a partir de qué versión del navegador se distribuye.

Tres vías hacia el decodificador: solicitudes, respuestas y archivos

Un sistema es explotable cuando descomprime datos Brotli procedentes de una fuente no fiable. En primer lugar, las solicitudes entrantes con Content-Encoding: br, por ejemplo a través de Express 5 con body-parser 2, la descompresión de solicitudes de ASP.NET Core o los filtros Brotli de Envoy. En segundo lugar, las respuestas de servidores externos: fetch() en Node.js, HttpClient en .NET con la descompresión activada y los clientes de Python con un paquete Brotli instalado descomprimen automáticamente. Imperva demostró la ejecución de código contra Node.js por ambas vías. Por ello, también corren peligro los webhooks, las vistas previas de enlaces, los rastreadores y los agentes de IA con herramientas web que consultan URL elegidas por el usuario. En tercer lugar, archivos como JPEG XL o Parquet. Un WAF solo protege la dirección entrante, y no basta con eliminar br de Accept-Encoding, porque un servidor malicioso puede enviar datos Brotli de todos modos.

Situación a 27 de octubre de 2026: exploits públicos, explotación no confirmada

En GitHub circulan varios exploits. Con ellos, la ejecución de código suele lograrse solo en condiciones ajustadas, mientras que provocar una caída es fácil. El 26 de octubre, ELLIO informó de tráfico de explotación contra Node.js 24.22.0 en sus propios sensores y lo considera la primera explotación observada en entornos reales. Tenable no lo ha confirmado de forma independiente, Rapid7 no tenía conocimiento de ninguna explotación y la vulnerabilidad no figura en el catálogo KEV de CISA. El CERT-Bund alemán la recoge en el aviso WID-SEC-2026-4117 con una calificación de gravedad media. Según Akamai, el 61 % de las redes ejecuta versiones afectadas de Node.js; según Wiz, el 91 % de los entornos en la nube tiene recursos vulnerables.

Qué deberían hacer ahora las empresas

Recomendamos un plan de 7 puntos de fuera hacia dentro: 1. Identificar dónde se descomprime Brotli, empezando por los sistemas expuestos a Internet. 2. Rechazar las solicitudes con Content-Encoding: br en el WAF, la CDN o el proxy inverso y desactivar los filtros Brotli en Envoy e Istio. 3. Parchear primero los servicios accesibles desde el exterior y los que consultan URL externas, reconstruir las imágenes y reiniciar los procesos. 4. A continuación, abordar los sistemas internos, los pipelines de datos y las herramientas. 5. Desde el primer día, exigir informes por escrito a los proveedores. 6. Analizar el código y las imágenes con los escáneres de código abierto de JFrog y Trail of Bits, revisar las caídas desde el 21 de octubre y rotar las credenciales si hay indicios. 7. Documentarlo todo y comprobar las obligaciones de notificación. Detalles y comandos de inventario: https://brotli2shell.wiz.vamisec.com/en/#actions

Obligaciones de notificación según NIS2, el RGPD, DORA y el Cyber Resilience Act

Una vulnerabilidad no explotada no está sujeta, por sí sola, a notificación. Si ha sido explotada, pueden aplicarse obligaciones de notificación en virtud de NIS2 y de la ley alemana del BSI, del RGPD o, en el caso de las entidades financieras, de DORA. Desde el 11 de septiembre de 2026, los fabricantes que distribuyen Brotli o un entorno de ejecución como Node.js en sus propios productos deben notificar las vulnerabilidades explotadas activamente a través de la plataforma de notificación de ENISA, conforme al Cyber Resilience Act. Los plazos empiezan a contar desde que se tiene conocimiento del incidente.

Cómo le ayuda VamiSec

Como miembro de la Wiz Partner Alliance, VamiSec comprueba con rapidez si Brotli2Shell le afecta: desde fuera con Wiz ASM, el Wiz Red Agent y VamiRedteam, y desde dentro mediante conectores Wiz de solo lectura para la nube y Kubernetes, así como con los escáneres de JFrog y Trail of Bits en sus repositorios. Usted recibe una lista priorizada de hallazgos y un plan de acción. Puede solicitar la comprobación a través de https://brotli2shell.wiz.vamisec.com/en/#exposure-check o por correo electrónico a wiz@vamisec.com. Ante cualquier sospecha de compromiso, nuestro CSIRT está disponible las 24 horas del día en csirt@vamisec.com.

Preguntas frecuentes sobre Brotli2Shell

¿Qué es Brotli2Shell?

Brotli2Shell es uno de los nombres de CVE-2026-111497, una vulnerabilidad crítica en el decodificador Brotli de Google con CVSS v4.0 9.2. Otros nombres para el mismo fallo son Node2Shell, HTTP2Shell y Broccoli2Shell. Datos Brotli especialmente manipulados pueden corromper la memoria y, en el peor de los casos, permitir la ejecución de código.

¿Qué versiones son seguras?

Brotli 1.0.10, 1.1.1 y 1.2.1, Node.js 22.23.4, 24.22.1 y 26.12.1, Bun 1.4.4, .NET 8.0.33, 9.0.22 y 10.0.14, los paquetes de Python brotli 1.2.1 y brotlicffi 1.2.1.0, así como las versiones corregidas de Envoy, Istio y Brotli4j. Las distribuciones a menudo retroportan la corrección sin un nuevo número de versión; en ese caso, lo que cuenta es el registro de cambios del paquete.

¿Estoy afectado si no uso Node.js?

Posiblemente sí. El fallo está en el propio decodificador Brotli, que también incluyen Bun, .NET, paquetes de Python, Envoy, Istio, bibliotecas Java, bases de datos como ClickHouse y DuckDB, Apache Arrow y FFmpeg. Lo decisivo es si un componente descomprime datos Brotli procedentes de una fuente no fiable.

¿Se está explotando ya Brotli2Shell?

A 27 de octubre de 2026, no se ha confirmado ninguna explotación contra víctimas reales. Existen exploits públicos y ELLIO informó de tráfico de ataque en sus propios sensores. La vulnerabilidad no figura en el catálogo KEV de CISA. Aun así, trate los sistemas accesibles como si estuvieran siendo atacados.

¿Protege un WAF contra Brotli2Shell?

Solo en parte. Las reglas WAF de Cloudflare, Vercel o Imperva cubren las solicitudes entrantes; la regla de Cloudflare solo registra de forma predeterminada. Ningún WAF ve las respuestas de servidores externos que sus servicios obtienen y descomprimen. El parche sigue siendo necesario.

¿Dónde encuentro detalles y apoyo?

El informe de situación detallado reúne la matriz de versiones, la comprobación de versiones, los comandos de inventario, el plan de 7 puntos y las preguntas frecuentes; allí también puede solicitar la comprobación de exposición de VamiSec: https://brotli2shell.wiz.vamisec.com/en/

¿Tiene preguntas sobre la seguridad TI de su empresa?

Consulta inicial gratuita →