La vulnerabilidad crítica ‘HTTP2Shell’ en Brotli obliga a aplicar parches de emergencia

Vulnerabilidad crítica en el decodificador Brotli

Una falla de seguridad de gravedad crítica, denominada 'HTTP2Shell', en Brotli, la biblioteca de decodificación escrita en C que se incluye en Node.js, podría permitir a los atacantes corromper la memoria y acceder a información sensible. El problema está registrado como CVE-2026-111497 y también se conoce como 'Broccoli2Shell' y 'Node2Shell'. Afecta a las versiones 1.0.3 a 1.0.9, 1.1.0 y 1.2.0 de Brotli.

La vulnerabilidad recibió varios nombres porque se identificó inicialmente en Node.js, antes de que los investigadores descubrieran que el mismo defecto en el decodificador Brotli podía afectar a software de distintos ecosistemas.

Impacto amplio

El nombre HTTP2Shell refleja su impacto en clientes y servidores HTTP, aunque el fallo no es específico de HTTP/2 y puede afectar a otras aplicaciones que descomprimen datos Brotli controlados por el atacante. Además de Node.js, el software potencialmente afectado incluye clientes HTTP de Python como urllib3[brotli], requests, httpx y aiohttp[speedups], cuando están configurados con un decodificador Brotli vulnerable, así como otras aplicaciones y herramientas que utilicen implementaciones vulnerables de Brotli.

El domingo, Microsoft publicó una actualización de seguridad de emergencia para corregir el problema en .NET, advirtiendo de que una explotación exitosa permite la escalada de privilegios en sistemas con una versión vulnerable de .NET.

Brotli es un proyecto de código abierto desarrollado y mantenido por Google para la compresión de datos sin pérdida. Reduce el tamaño de los archivos para que se transmitan más rápido sin alterar los datos originales.

Cómo funciona el desbordamiento de búfer

La vulnerabilidad Node2Shell es un desbordamiento de búfer que permite que un flujo comprimido con Brotli especialmente diseñado provoque un cambio de bloque inválido que el decodificador considera válido e interpreta erróneamente como una solicitud de más entrada. Al seguir añadiendo bytes de entrada a un búfer interno de ocho bytes, la escritura se extiende más allá de sus límites y corrompe la memoria cercana.

«Se informó de un cambio de bloque inválido como una necesidad temporal de más entrada en lugar de como un error de formato permanente, por lo que el decodificador en streaming siguió añadiendo bytes de entrada a un búfer interno de ocho bytes», explica Node.js en un aviso.

Un atacante puede explotarlo haciendo que una aplicación descomprima datos maliciosos, por ejemplo sirviendo una respuesta HTTP comprimida a una aplicación que consulta una URL, o enviando una solicitud comprimida directamente a un servidor. Node.js señala que esto puede provocar el bloqueo del proceso, exponer memoria y habilitar la ejecución remota de código (RCE). Un informe reciente de la empresa de ciberseguridad Imperva confirma que la explotación de la vulnerabilidad Node2Shell (CVE-2026-111497) puede conducir a RCE.

Parches y versiones corregidas

Las correcciones de Brotli en el código fuente original se confirmaron por primera vez en febrero, pero Node.js y Google publicaron las correcciones estables para los usuarios el 21 de octubre, seguidas de la divulgación pública al día siguiente. Los paquetes de PyPI con las correcciones estuvieron disponibles el 23 de octubre.

  • Google Brotli 1.0.10, 1.1.1, 1.2.1
  • Node.js 22.23.4, 24.22.1, 26.12.1
  • Python Brotli 1.2.1
  • Python brotlicffi 1.2.1.0

Se han publicado exploits de prueba de concepto (PoC) para Node2Shell, pero no hay informes de explotación maliciosa en el mundo real. Aun así, los usuarios deben priorizar la aplicación de las actualizaciones de seguridad disponibles.

Tras la actualización, los administradores deben reiniciar los procesos afectados, y las imágenes de contenedor afectadas deben reconstruirse y volver a desplegarse. Un portal en línea dedicado a seguir el impacto del fallo también advierte de que actualizar la biblioteca Brotli del sistema no resuelve el riesgo en las implementaciones de Node.js ni en otras aplicaciones que utilizan su propia copia empaquetada de la biblioteca.

Además, bloquear las solicitudes entrantes con Brotli deja expuesta la vía de la respuesta HTTP maliciosa. Si no es posible actualizar de inmediato, la recomendación es eliminar el soporte de Brotli de las aplicaciones Python y bloquear las solicitudes comprimidas con Brotli en el proxy o el cortafuegos.

Contexto adicional sobre defensas tras el acceso inicial

Las puntuaciones generales de prevención pueden ocultar lo que ocurre después del acceso inicial. Cuando los atacantes utilizan credenciales válidas, la prevención cae drásticamente. El Blue Report 2026 mide las defensas técnica por técnica en 338 millones de simulaciones realizadas en entornos de producción de clientes.

Artículos relacionados

  • Microsoft publica parches de emergencia para .NET por el fallo crítico de Brotli
  • PHP comparte una mitigación para una nueva vulnerabilidad de RCE sin parche
  • HPE corrige ocho fallos de máxima gravedad de RCE y omisión de autenticación en AOS
  • GitLab advierte de una nueva vulnerabilidad de ejecución de código de máxima gravedad
  • PHP lanza parches de emergencia para los fallos críticos PHP2Shell
article image
article image

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *