Ir al contenido

Seguridad

HTTP2Shell: un fallo crítico en Brotli obliga a actualizar Node.js, .NET y librerías de Python

Brotli, el formato de compresión de Google que usan millones de webs, tiene un fallo que permite ejecutar código en servidores y aplicaciones que descomprimen datos ajenos. Ya hay parches y exploits públicos. Si tienes una web o una aplicación propia, esto te interesa.

Por Redacción 2 min de lectura

Bloque de datos comprimido que se resquebraja y deja escapar luz roja frente a un servidor
Imagen generada por Kilobita

Después de PHP2Shell, otro fallo crítico con nombre propio. Se llama HTTP2Shell, aunque también se le conoce como Node2Shell o Broccoli2Shell, y su código oficial es CVE-2026-111497. Está en el descompresor de Brotli, un formato de compresión creado por Google que muchas webs usan para enviar sus páginas más rápido.

Qué pasa

Según el aviso de seguridad de Node.js del 21 de octubre, unos datos comprimidos con Brotli preparados a propósito hacen que el descompresor siga escribiendo en un espacio de memoria de solo ocho bytes y se salga de él. Eso puede tumbar el programa, dejar a la vista parte de su memoria o permitir que el atacante ejecute código.

Hay dos formas de llegar: enviar una petición comprimida a un servidor que la descomprima, o hacer que una aplicación descargue una respuesta comprimida desde una web controlada por el atacante. Por eso el nombre habla de HTTP, aunque afecta a cualquier programa que descomprima Brotli de origen desconocido.

A qué afecta

  • La librería Brotli de Google, versiones de la 1.0.3 a la 1.0.9, la 1.1.0 y la 1.2.0.
  • Node.js, que la lleva incorporada.
  • Python: clientes HTTP como urllib3, requests, httpx o aiohttp cuando usan un descompresor Brotli vulnerable.
  • .NET, solo en aplicaciones que hayan activado la descompresión Brotli, que no viene activa de serie, según ha explicado Microsoft.

Hay exploits de prueba publicados, aunque, según BleepingComputer, no se conocen ataques reales todavía. Los avisos hablan de servidores y aplicaciones, no de navegadores.

Qué hay que actualizar

SoftwareVersiones corregidas
Brotli (Google)1.0.10, 1.1.1 y 1.2.1
Node.js22.23.4, 24.22.1 y 26.12.1
.NET8.0.33, 9.0.22, 10.0.14 y .NET 11 RC 3
Python (paquetes brotli y brotlicffi)1.2.1 y 1.2.1.0

Tres detalles que se pasan por alto con facilidad:

  • Actualizar la librería del sistema no basta si la aplicación trae su propia copia, como hace Node.js.
  • Después de actualizar hay que reiniciar los procesos, y reconstruir y volver a desplegar las imágenes de contenedores.
  • Si no puedes actualizar ya, bloquea en el proxy o el cortafuegos las peticiones entrantes comprimidas con Brotli o desactiva Brotli en tus aplicaciones de Python. Bloquear solo lo entrante no te protege de las respuestas que descargue tu aplicación.

Si tu web es un WordPress en un hosting normal, esto lo resuelve tu proveedor. Si tienes tus propias aplicaciones en Node.js, Python o .NET, revisa versiones hoy mismo.

Sigue leyendo