Saltar al contenido
Ilustración de la androide de XEVIA escribiendo en una tableta holográfica

Vulnerabilidades🔴 Actúa

Node2Shell: el fallo de Node.js que ya tiene prueba de ataque y exige actualizar

Node.js 22.23.4, 24.22.1 y 26.12.1 corrigen un fallo en el descompresor Brotli que investigadores ya han usado para ejecutar código.

Óscar Deseco & equipo
Óscar lee y opina · 23 de octubre de 2026

Qué ha pasado

El 21 de octubre, el mismo día que PHP, el proyecto Node.js publicó las versiones 22.23.4, 24.22.1 y 26.12.1, que corrigen diez vulnerabilidades: cuatro de gravedad alta, tres media y tres baja. La más seria, CVE-2026-111497, está en el descompresor Brotli que Node.js incluye de serie: unos datos comprimidos manipulados pueden hacer que escriba fuera de la memoria que le corresponde y abrir la puerta a ejecutar código.

El 22 de octubre, el equipo de investigación de Imperva explicó que había conseguido ejecutar código con esta técnica sobre la imagen oficial de Node.js 24.22.0, aunque no en todos los intentos, y que la versión 24.22.1 rechaza esos mismos datos. Desde entonces el fallo circula con el nombre de Node2Shell, en paralelo a PHP2Shell.

No todas las aplicaciones están igual de expuestas. Según Imperva y Aikido, el riesgo aparece cuando la aplicación descomprime datos Brotli que vienen de fuera: respuestas que obtiene con fetch() de otros servidores, cuerpos de petición que procesan Express 5 o body-parser 2.x, o el uso directo del módulo zlib. Un servidor HTTP básico de Node no los descomprime por sí solo. Las ramas sin soporte (20, 23 y 25) no reciben arreglo. Entre los otros fallos altos hay dos que permiten saltarse la comprobación del nombre en certificados TLS, y la actualización también retira de su almacén de certificados los intermedios de eMudhra comprometidos.

Por qué le importa a tu empresa

Node.js está detrás de muchas webs modernas, tiendas headless, paneles de clientes, integraciones con pasarelas de pago y webhooks. A menudo nadie en la empresa sabe que existe, porque va dentro de un contenedor o de una plataforma que montó la agencia. Y ahí está la trampa: actualizar Node en el servidor no sirve si cada imagen o cada despliegue lleva su propia copia antigua.

Mi opinión

Seré prudente: el fallo es serio, pero explotarlo no es trivial y depende de cómo esté hecha la aplicación. No he visto que se haya confirmado ningún ataque real contra empresas. Aun así, cuando ya hay una demostración pública, lo sensato es suponer que alguien la va a perfeccionar. Dos actualizaciones críticas de los dos lenguajes más usados en la web en la misma semana es un buen momento para tener por escrito qué versiones usa cada pieza de tu web. En XEVIA es lo primero que pedimos en una revisión, porque sin ese inventario no se puede actualizar nada con seguridad.

Qué hacer hoy

  • Pregunta a tu equipo técnico o agencia si alguna parte de tu web, API o integración usa Node.js, y con qué versión.
  • Actualiza a 22.23.4, 24.22.1 o 26.12.1 (o posterior) y vuelve a generar todas las imágenes y despliegues, no solo el servidor.
  • Si alguna aplicación sigue en Node 20, 23 o 25, planifica ya su paso a una rama con soporte.
  • Mientras tanto, valora rechazar en el proxy las peticiones que llegan comprimidas con Brotli, sabiendo que no cubre las respuestas que tu aplicación descarga.

¿Te afecta? Comprueba en un minuto cómo está tu web: normativa, seguridad y funcionamiento.

Fuentes

Resumen y opinión propios de XEVIA a partir de las fuentes enlazadas.