Saltar al contenido principal
CVE-2026-111497 · Brotli RCE

Parche de seguridad Node.js (octubre 2026)

El 21 de octubre de 2026 Node.js publicó una release de seguridad con 10 CVEs para las ramas 26.x, 24.x y 22.x. La más grave, CVE-2026-111497, es una escritura fuera de límites en el descompresor Brotli que permite ejecución remota de código. Las versiones corregidas son v26.12.1, v24.22.1 y v22.23.4; 20.x y 25.x están en fin de vida y no reciben parche.

¿Tienes esta vulnerabilidad? Actualizamos Node.js en tus servidores, imágenes Docker y pipelines, comprobamos que la aplicación sigue respondiendo igual y planificamos el cambio de rama si sigues en 20.x o 25.x.

Qué ha pasado

Diez CVEs en una release, cuatro de severidad alta

La release corrige cuatro vulnerabilidades altas, tres medias y tres bajas. A 21 de octubre no se había reportado explotación de ninguna.

CVE-2026-111497 es una escritura fuera de límites en el descompresor Brotli que permite ejecución remota de código. No hace falta llamar a zlib a mano para quedar expuesto: según Cyberkendra, Express 5 y fetch() descomprimen Brotli de forma automática.

Las otras tres altas tocan la red. CVE-2026-106069 y CVE-2026-105483 permiten saltarse la comprobación de hostname en certificados TLS, que es la que garantiza que tu aplicación habla con el servidor que cree cuando hace una petición HTTPS. CVE-2026-105482 hace que dns.resolve trunque nombres que contienen un carácter NUL.

La misma release rechaza las cadenas de certificados que usan las claves comprometidas de eMudhra, la autoridad certificadora india cuyos ocho certificados intermedios se generaron con claves débiles. Las ramas 20.x y 25.x, en fin de vida, no reciben nada de esto.

Fuentes: nodejs.org: October 2026 Security Releases

¿Estás afectado?

Versiones corregidas de Node.js

Si un servicio corre con una versión anterior a la de su rama, está afectado. En 20.x y 25.x no hay versión corregida: la salida es cambiar de rama.

Rama Corregida en Nota
26.x v26.12.1
24.x v24.22.1
22.x v22.23.4
25.x Sin parche Fin de vida: pasar a 26.x
20.x Sin parche Fin de vida: pasar a 22.x o 24.x

Revisa esto

  • Tienes APIs, backends o renderizado en servidor (Next.js, Nuxt, Astro, NestJS, Express) corriendo en Node.js.
  • node -v en el servidor, o dentro de la imagen Docker, da una versión anterior a la de tu rama.
  • Tu Dockerfile usa una etiqueta como node:22 y la imagen no se ha reconstruido: sigue con la versión que había al construirla.
  • Algún servicio sigue en 20.x o 25.x: no habrá parche para esas ramas.
  • Tu aplicación descomprime Brotli (con fetch(), Express 5 o un proxy propio) o hace peticiones HTTPS a terceros.
Mientras tanto

Si sigues en 20.x o 25.x

Node.js no ha publicado mitigaciones temporales para esta release. En una rama sin soporte, lo único que corrige los fallos es salir de ella.

  1. 01 Las ramas en fin de vida no reciben esta corrección ni las que vengan después.
  2. 02 Pasar de 20.x a 22.x o 24.x suele obligar a revisar dependencias con módulos nativos y a probar el build completo.
  3. 03 Mientras dura la migración, conviene saber qué endpoints aceptan cuerpos comprimidos y qué servicios descargan contenido de fuera: son los primeros que hay que mover.
Cómo lo hacemos

Siete pasos, en este orden

Aplicamos el mismo procedimiento en cada servidor: primero saber qué versión hay en cada sitio, después corregir y al final comprobar que nadie entró antes del parche.

Inventario
versión por servidor
Mitigación
temporal
Actualización
v26.12.1 · v24.22.1 · v22.23.4
Verificación
en producción
Indicios
logs · ficheros
Secretos
si procede
Vigilancia
nuevos avisos
01

Inventario de versiones

Localizamos dónde corre Node.js: servidores, imágenes Docker, funciones serverless, runners de CI y el .nvmrc o el campo engines de cada repositorio. Cada sitio puede llevar una versión distinta.

02

Mitigación inmediata

Sin mitigación oficial, empezamos por los servicios más expuestos: los que aceptan cuerpos con Brotli o descargan contenido de terceros van primero en la cola.

03

Actualización

Subimos a v26.12.1, v24.22.1 o v22.23.4, reconstruimos las imágenes y fijamos la versión en Dockerfile, .nvmrc y CI. Si estás en 20.x o 25.x, planificamos el salto de rama.

04

Verificación

Comprobamos la versión dentro del contenedor que está en producción, pasamos los tests y revisamos que las llamadas HTTPS a terceros sigan validando certificados.

05

Revisión de indicios de compromiso

Revisamos logs de la aplicación y del sistema en busca de caídas del proceso, reinicios sin explicación y procesos o ficheros que no deberían estar ahí.

06

Rotación de secretos, si procede

Si hay señales de acceso, rotamos las variables de entorno sensibles: claves de API, credenciales de base de datos y tokens.

07

Vigilancia de nuevos avisos

Dejamos anotada la versión de cada servicio y la fecha de fin de vida de su rama, para que la siguiente release de seguridad empiece desde ese inventario.

Antes y después

Dónde se queda Node.js sin actualizar

Actualizar a ojo Con el procedimiento
Se actualiza Node en el servidor, pero la imagen Docker se construyó hace dos meses
Imágenes reconstruidas y versión comprobada dentro del contenedor
El CI prueba con una versión y producción corre con otra
La misma versión fijada en Dockerfile, .nvmrc y pipeline
Un microservicio en 20.x se queda fuera porque nadie se acordaba de él
Plan de migración para cada servicio en una rama sin soporte
Los secretos del .env siguen igual aunque el proceso se cayó sin explicación
Secretos rotados cuando hay indicios

¿Tienes servicios en Node 20 y no sabes cuánto cuesta moverlos?

Consultoría gratuita →
FAQ

Preguntas frecuentes sobre la release de seguridad de Node.js

¿Qué versiones de Node.js corrigen CVE-2026-111497?
v26.12.1, v24.22.1 y v22.23.4, publicadas el 21 de octubre de 2026. Las ramas 20.x y 25.x están en fin de vida y no tienen versión corregida.
Uso Node 20, ¿estoy afectado?
Node.js no publica parches para 20.x, así que ninguna versión de esa rama corrige estos fallos. La salida es pasar a 22.x o 24.x, revisando antes las dependencias con módulos nativos y probando el build completo.
¿Me afecta si no uso Brotli?
Puede que lo uses sin saberlo: según Cyberkendra, fetch() y Express 5 descomprimen Brotli de forma automática. Además, la release corrige otros fallos, como los dos bypass de la comprobación de hostname en TLS, que afectan a cualquier aplicación que haga peticiones HTTPS.
¿Basta con cambiar la imagen base de Docker?
Hay que reconstruir la imagen y volver a desplegarla. Un contenedor en marcha sigue con la versión con la que se construyó, aunque la etiqueta node:22 ya apunte a una versión nueva.
Empecemos

Cuéntanos dónde corre tu Node.js

Empezamos por el inventario: qué versión lleva cada servicio, cuál hay que mover primero y qué rama necesita una migración.

Parche de seguridad Node.js (octubre 2026)

Cuéntanos tu reto. Te proponemos solución.

Sin compromiso. En menos de 24 h recibes una propuesta con alcance, plazos y presupuesto. Sin letra pequeña.

Agenda call gratuita →