Node2Shell: la vulnerabilidad de Node.js que te toca si tenés web o app
Una falla crítica en Node.js (Node2Shell, CVE-2026-111497) encontrada por la IA de OpenAI afecta a servidores de apps y tiendas de todo el mundo. Qué es, qué puede pasar y las preguntas para hacerle hoy mismo a tu equipo técnico.

¿Pedís comida por app? ¿Sacás turnos online? ¿Vendés por una tienda web? Entonces esto te toca, aunque no toques una línea de código. Detrás de esas aplicaciones hay un servidor laburando, y muchos usan Node.js. Esta semana esos servidores entraron en el radar por Node2Shell, una vulnerabilidad grave encontrada por el equipo de seguridad de OpenAI, con parches desde el 21 de octubre.
Acá repasamos qué es la falla, qué puede pasar si tu stack está desactualizado y qué preguntarle a quien maneja la parte técnica de tu negocio.
¿Qué es Node2Shell y por qué te toca?
Node2Shell es el nombre de la vulnerabilidad registrada como CVE-2026-111497. En criollo: un error en el “descompresor” Brotli que Node.js incluye de fábrica. Brotli es un formato de compresión muy usado en la web; cuando una app abre datos comprimidos con él, llega al código con el defecto.
El fallo es un desborde de escritura en memoria: con datos trampa y un sistema sin actualizar, el descompresor escribe donde no debe. Eso puede terminar en una caída del servicio, una fuga de información de la memoria o ejecución de código remota: que el servidor obedezca instrucciones de quien ataca, sin login. La encontró OpenAI Codex Security en un trabajo de red-teaming y el registro CVE la puntúa 9,2 sobre 10. En los titulares aparece como HTTP2Shell o Broccoli2Shell: es la misma falla, no tres.
Qué puede pasar (y por dónde entra)
El riesgo concreto: que un atacante pueda robar datos de clientes, copiar una base o tirar el servicio. Escenarios posibles de una ejecución de código, no hechos ocurridos. Para que el ataque llegue hace falta que tu app descomprima datos Brotli que controle un tercero:
- fetch(): la API nativa de Node descomprime respuestas Brotli automáticamente; si tu servidor consulta una fuente comprometida, llega el dato trampa.
- Express 5 y body-parser 2: descomprimen bodies de request con Brotli por defecto; cualquier cliente puede mandarlos.
- node:zlib: si tu código descomprime Brotli directamente sobre entradas no confiables.
Imperva demostró ejecución de código real sobre una imagen oficial de Node.js 24.22.0 (Linux arm64), con varios intentos; en la versión arreglada el ataque no funciona. Hay debate sobre cuán explotable es en cada entorno: para algunos investigadores lo más probable es la caída del servicio. Que una falla exista no significa que te hayan hackeado.
Los parches ya están: desde el 21 de octubre
Node.js publicó las versiones arregladas el 21 de octubre de 2026 y Google liberó Brotli corregido el mismo día. La tabla resume dónde estás parado:
| Componente | Afectado | Arreglado en |
|---|---|---|
| Node.js 26.x | hasta 26.12.0 | 26.12.1 |
| Node.js 24.x | hasta 24.22.0 | 24.22.1 |
| Node.js 22.x | hasta 22.23.3 | 22.23.4 |
| Node.js 20.x y anteriores | sí | sin parche: hay que migrar |
| Bun | hasta 1.4.3 | 1.4.4 |
| Brotli (Google) | 1.0.3 a 1.2.0 | 1.0.10 / 1.1.1 / 1.2.1 |
Dos detalles que se pasan de largo. Primero: el arreglo de fondo ya existía en el código de Brotli desde febrero, pero ninguna release lo incluía —estar “arreglado en el código” no es “arreglado para vos”. Segundo: los escáneres de dependencias pueden no marcar el problema: lo vulnerable es el runtime empaquetado, no un paquete de tu manifiesto.
Checklist para hacerle hoy a tu equipo técnico
No hace falta ser técnico: pasale esta lista.
- ¿Qué versión de Node.js corre cada servicio e imagen de contenedor? (
node --versionen cada entorno) - ¿Ya se actualizó a 22.23.4, 24.22.1 o 26.12.1 (o más nuevo) y se reconstruyeron las imágenes?
- Si estamos en Node 20.x o anterior: ¿cuál es el plan de migración? Esas líneas no reciben parche.
- ¿Dónde descomprimimos datos Brotli de fuentes que no controlamos? (fetch(), Express 5 con body-parser, clientes HTTP)
- ¿Podemos desactivar el descomprimido de bodies entrantes?
inflate: falseen body-parser rechaza esos envíos. - ¿Qué servicios están expuestos a internet o procesan datos de clientes? Esos van primero.
- ¿Hay regla de WAF o control de tráfico mientras se actualiza todo?
- ¿El chequeo incluye runtimes dentro de contenedores? Un inventario de paquetes puede no ver un Node viejo.
Vulnerable no es hackeado (pero el parche es barato)
El dato más citado viene de Wiz: el 91% de los entornos en la nube que analizan tiene recursos vulnerables a esta falla y el 82% instancias de Node.js expuestas públicamente. Akamai midió que el 61% de las redes que observa corre versiones afectadas. Números grandes, pero “tener recursos vulnerables” no significa estar hackeado, y el parche está desde el 21 de octubre.
Lo que cambió en los últimos días: CISA la agregó a su catálogo de fallas explotadas conocidas y hay reportes de intentos de explotación. La ventana entre parche y código de prueba público fue de un día. El riesgo hoy no es catastrófico, pero actualizar es rápido y barato; una brecha de datos no. Si tu marca depende de un canal digital medible —growth marketing, campañas de pauta o tienda online— el servidor sano es parte del negocio.
Preguntas frecuentes
¿Qué es Node2Shell en criollo?
Un error en el código que abre archivos Brotli dentro de Node.js: con un archivo trampa y un servidor sin actualizar se puede romper el proceso, leer su memoria u obligarlo a ejecutar órdenes. Es el CVE-2026-111497.
¿A mi negocio le afecta si no hacemos software?
Sí, indirectamente: si usás una app de delivery, un sistema de turnos o una tienda online, detrás probablemente haya servidores con Node.js. La pregunta no es "¿somos de tecnología?" sino "¿quién actualiza la tecnología que usamos?". Pedile a tu proveedor qué versión corre.
¿Ya hubo hackeos por esta vulnerabilidad?
Hasta el 23 de octubre no había explotación confirmada en la wild: los reportes hablan de intentos aislados y código de prueba público, no de una ola de incidentes. CISA la agregó a su catálogo de fallas explotadas conocidas: el riesgo ahora es real y monitoreado. Vulnerable no es hackeado.
¿Qué hago si mi proveedor técnico no me responde?
Pedí por escrito la versión de Node.js de cada servicio y la fecha del update a una arreglada (22.23.4, 24.22.1 o 26.12.1). Si hay demoras, que te digan qué servicios están expuestos y qué contención aplican.
¿Esto afecta solo a Node.js?
No. El defecto está en la librería Brotli, presente en muchos programas: por eso Microsoft actualizó .NET y hay paquetes de Python afectados. Node.js es el caso más visible; la pregunta útil es la misma: ¿qué software nuestro abre datos comprimidos de fuentes externas y está actualizado?
¿Querés tu presencia digital a punto? En nuestro servicio de marketing digital lo vemos con criterio de negocio. Y si te interesa el cruce entre IA y visibilidad, pasá por IA y SEO o por nuestros tableros de reporting con IA.