HTTP2Shell: el fallo grave en la compresión de datos que puede afectar a las webs, APIs y apps de tu empresa, y qué hacer ya
HTTP2Shell es un fallo crítico en Brotli que afecta a Node.js, Bun, Envoy y paquetes de Python. Qué es, cómo saber si te afecta y qué pedir ya a tu equipo.
¿Qué es HTTP2Shell y por qué debería importarte?
HTTP2Shell es el apodo de CVE-2026-111497, un fallo crítico en Brotli, la librería de compresión de datos de Google que llevan dentro Node.js, Bun, Envoy o los paquetes de Python que descomprimen Brotli, entre otros. Un atacante remoto, sin usuario ni contraseña, puede enviar datos comprimidos manipulados que corrompen la memoria del proceso y, potencialmente, ejecutar código. La solución es actualizar los componentes afectados, según el registro del NVD publicado el 22 de octubre de 2026.
Google publicó las versiones corregidas de Brotli el 21 de octubre de 2026 en su repositorio oficial, y ese mismo día Node.js lanzó su aviso de seguridad del 21 de octubre de 2026. Después llegaron el aviso de GitHub para los paquetes de Python, del 22 de octubre, y el aviso de Envoy, del 23 de octubre.
Si leíste nuestro análisis de los fallos críticos de PHP que pueden afectar a la web de tu empresa, el patrón te sonará: el problema no está en el código de tu aplicación, sino en una pieza de base sobre la que funciona. Aquí te contamos qué se sabe, cómo comprobar si te afecta y qué pedir a tu equipo o a tu proveedor.
¿Por qué el mismo fallo tiene tres nombres?
El fallo es de Brotli, un formato y una librería de Google que sirven para reducir el tamaño de los datos que viajan por la red. El error está en el decodificador, la parte que descomprime, y el identificador oficial es el que figura en el registro de CVE.org, publicado el 22 de octubre de 2026. Google, como organización que lo asignó, lo titula como una escritura fuera de límites en el decodificador de Brotli.
Node2Shell es el nombre que el equipo de investigación de Imperva dio a su análisis del fallo en Node.js. En su publicación del 22 de octubre de 2026, Imperva demostró que podía ejecutar código en una aplicación Node.js vulnerable a partir de datos Brotli manipulados, tanto en peticiones recibidas como en respuestas descargadas.
HTTP2Shell es el nombre que la empresa de seguridad Aikido puso a la ampliación del problema: según su artículo del 23 de octubre de 2026, el fallo afecta a librerías y aplicaciones que usan HTTP en varios lenguajes, no solo a Node.js. Ninguno de los dos apodos es oficial: los tres nombres señalan el mismo fallo de Brotli.
¿Qué gravedad tiene y se está explotando?
Google le asigna una puntuación CVSS v4.0 de 9,2, severidad crítica, según el registro del NVD del 22 de octubre de 2026. Node.js, en su aviso del 21 de octubre de 2026, lo califica como «high» con su propia escala. La diferencia de etiqueta no cambia lo esencial: el ataque se hace por red y no necesita credenciales.
En cuanto a la explotación, no consta en las fuentes oficiales consultadas que se esté aprovechando contra empresas: la valoración que CISA añadió el 23 de octubre al registro de CVE.org marca la explotación como «ninguna» en ese momento. Lo que sí es público es la demostración técnica de Imperva, así que lo prudente es actuar ya y no esperar a que haya noticias de ataques.
El origen también explica la prisa. Según Reuters, el 23 de octubre de 2026, OpenAI encontró el fallo durante un ejercicio en el que equipos de agentes de IA intentaban saltarse las defensas de sus entornos restringidos. La causa raíz se corrigió en el código de Brotli en febrero sin saber que era una vulnerabilidad, y entonces no se publicó ninguna versión con el arreglo.
¿A quién afecta y qué versiones lo corrigen?
El fallo está en Brotli desde la versión 1.0.3 hasta la 1.2.0, en todas las plataformas, según el NVD (22/10/2026). Cada producto que incluye su propia copia de Brotli necesita su propia actualización. Esta tabla resume los componentes con versión corregida conocida:
| Componente | Versiones corregidas | Fuente |
|---|---|---|
| Brotli (Google) | 1.0.10, 1.1.1 y 1.2.1 | Google, releases de Brotli (21/10/2026) |
| Node.js (ramas 22, 24 y 26) | 22.23.4, 24.22.1 y 26.12.1 | Aviso de Node.js (21/10/2026) |
| Python: paquetes Brotli y brotlicffi | Brotli 1.2.1 y brotlicffi 1.2.1.0 | Aviso de GitHub (22/10/2026) |
| Envoy | 1.40.0, 1.39.3, 1.38.6, 1.37.8 y 1.36.12 | Aviso de Envoy (23/10/2026) |
| Bun | 1.4.4, según Aikido | Aikido (actualizado el 24/10/2026) |
| Istio | 1.29.9, 1.30.6 y 1.31.2, según Aikido | Aikido (actualizado el 24/10/2026) |
Node.js confirma en su aviso del 21/10/2026 que están afectadas las ramas 22.x, 24.x y 26.x, y atribuye el hallazgo a OpenAI Codex Security. Envoy califica el fallo como crítico en su aviso del 23/10/2026 y precisa que afecta a las instalaciones que tienen configurado el descompresor Brotli. Según Aikido, las ramas 1.36 de Envoy y 1.29 de Istio ya no tienen soporte, así que lo recomendable es pasar a una rama mantenida.
En Python, el riesgo puede estar donde no lo esperas. Según Aikido (actualizado el 24/10/2026), clientes HTTP muy habituales como requests, aiohttp y httpx (este último con su extra de Brotli) usan esos paquetes automáticamente si están instalados, aunque tu código nunca los mencione.
La parte tranquilizadora: según el mismo análisis de Aikido, Apache y Nginx no descomprimen Brotli por defecto. Aun así, conviene revisar lo que corre detrás.
¿Cómo sé si mi empresa está afectada?
La pregunta clave es si alguna de tus webs, APIs o aplicaciones funciona sobre Node.js, Bun o Python, o pasa por un proxy como Envoy o Istio. Si la respuesta es sí, o no la sabes, hay que comprobarlo.
Puedes trasladar a tu equipo o a tu proveedor una pregunta concreta: «¿Qué versión de Brotli, Node.js y de los paquetes de Python usamos en producción, y están ya corregidas frente a CVE-2026-111497?». Para que no haya dudas, enlázale el registro oficial en CVE.org.
Ten en cuenta que la pieza vulnerable puede llegar de forma indirecta: dentro de una imagen de contenedor, de una dependencia de otra dependencia o de un servicio que tu aplicación consulta. Por eso la revisión tiene que cubrir lo que está desplegado, no solo lo que aparece en el código.
¿Qué hacer ya?
Estos son los pasos que recomendamos pedir esta misma semana, en este orden:
- Haz inventario de las aplicaciones que usan Node.js, Bun, Python, Envoy o Istio, incluidas las que gestiona un proveedor.
- Actualiza Brotli a 1.0.10, 1.1.1 o 1.2.1, según la rama que uses, como indica el NVD (22/10/2026).
- Actualiza Node.js a 22.23.4, 24.22.1 o 26.12.1, las versiones que publica el propio aviso de Node.js (21/10/2026).
- En Python, sube Brotli a 1.2.1 y brotlicffi a 1.2.1.0, como recoge el aviso de GitHub (22/10/2026).
- Si usas Envoy, aplica una de las versiones corregidas de su aviso (23/10/2026); para Bun e Istio, las de la tabla anterior, que proceden de Aikido.
- Vuelve a construir y desplegar las aplicaciones, reinicia los servicios y comprueba que lo que funciona en producción usa ya la versión corregida.
¿Y si no puedes actualizar todavía?
Hay medidas temporales que reducen la exposición mientras preparas la actualización. Según Aikido (actualizado el 24/10/2026), consisten en cortar el paso a los datos Brotli en los dos sentidos:
- Datos que entran: rechazar en el proxy, el balanceador o la propia aplicación las peticiones que lleguen con la cabecera Content-Encoding br, antes de que se descompriman.
- Datos que salen a buscar tus aplicaciones: quitar br de la cabecera Accept-Encoding y, sobre todo, no decodificar las respuestas que lleguen comprimidas con Brotli. Aikido advierte de que cambiar solo Accept-Encoding no basta, porque un servidor malicioso puede enviar Brotli igualmente.
Son ajustes técnicos que debe aplicar quien administra la infraestructura. Sirven para ganar tiempo, no sustituyen la actualización.
¿Qué supone para una empresa con webs, APIs o apps propias?
Supone una tarea de mantenimiento que no puede esperar. El fallo no depende de cómo esté escrita tu aplicación: basta con que una de sus piezas descomprima datos Brotli con una versión vulnerable.
Afecta en los dos sentidos. Una API que recibe datos de clientes o socios puede ser el punto de entrada, pero también una aplicación que consulta servicios externos. Lo mismo vale para un ERP desarrollado a medida que intercambia información por API con otras plataformas.
También es un buen momento para revisar los contratos y responsabilidades de mantenimiento: quién vigila las dependencias, quién actualiza y en qué plazos. Si tratas datos personales, consulta con tu asesor si un incidente de este tipo tendría implicaciones; no es algo que podamos valorar con carácter general.
¿Cómo puede ayudarte NADIA Solutions a revisar y actualizar tu software?
Actualizar una versión parece sencillo, pero en la práctica exige saber qué está desplegado, qué depende de qué y cómo probar que nada se rompe al cambiarlo.
En NADIA Solutions podemos revisar contigo las dependencias de tus webs, APIs y aplicaciones, localizar las piezas afectadas, actualizarlas y volver a desplegar el software con las versiones corregidas. Desarrollamos software a medida en Valencia, así que, si la actualización lo requiere, también podemos adaptar el código.
Si quieres que lo miremos, escríbenos desde el formulario de contacto y cuéntanos qué tienes. Lo revisamos contigo y te decimos qué pasos tienen sentido en tu caso.
Fuentes
- CVE-2026-111497 Detail — NIST National Vulnerability Database
- CVE-2026-111497: Out-of-Bounds Write in Google Brotli Decoder — CVE Program (CVE.org)
- Releases de google/brotli (v1.0.10, v1.1.1, v1.2.1) — Google (GitHub)
- Wednesday, October 21, 2026 Security Releases — The Node.js Project
- Out-of-bounds write in the Brotli decoder ("Node2Shell") also affects the PyPI Brotli package (GHSA-9v8h-qqgm-4m35) — GitHub Advisory Database
- Out-of-Bounds Write in Brotli Decompressor (GHSA-3wvj-j6qm-62mr) — Envoy Proxy (GitHub)
- Node2Shell evolves to HTTP2Shell. Brotli flaw (CVE-2026-111497) blast radius affects many libraries & apps using HTTPs — Aikido Security
- Node2Shell: From Brotli Data to Remote Code Execution — Imperva
- OpenAI resumes frontier AI training after security overhaul, discloses flaw in widely used software — Reuters (vía Investing.com)
Preguntas frecuentes
¿HTTP2Shell es el nombre oficial del fallo?
No. El identificador oficial es CVE-2026-111497 y el fallo es de Brotli, la librería de compresión de Google. HTTP2Shell es el nombre que le puso Aikido y Node2Shell, el que usó Imperva para su análisis en Node.js.
¿Mi web está afectada si uso Apache o Nginx?
Según Aikido, Apache y Nginx no descomprimen Brotli por defecto, así que el riesgo directo es menor. Aun así, conviene revisar las aplicaciones que corren detrás, sobre todo si usan Node.js, Python, Bun o un proxy como Envoy.
¿Se está explotando ya?
En las fuentes oficiales consultadas no consta explotación activa: la valoración de CISA en el registro de CVE.org la marcaba como «ninguna» el 23 de octubre. Sin embargo, Imperva ha demostrado la ejecución de código en Node.js, por lo que lo prudente es actualizar cuanto antes.
¿Basta con desactivar la compresión Brotli?
Rechazar los datos comprimidos con Brotli reduce la exposición mientras preparas el cambio, pero es una medida temporal. La solución completa es actualizar los componentes afectados y volver a desplegar.
Hablemos
Cuéntanos qué frena a tu empresa: hola@nadiasolutions.com