Node.js, actualización de seguridad de octubre de 2026: CVE-2026-111497 en Brotli y nueve fallas más
El 21 de octubre de 2026 Node.js corrigió diez vulnerabilidades, cuatro de severidad alta; la más grave permite ejecutar código mediante datos Brotli malformados. Versiones corregidas, superficie expuesta y verificación.

El 21 de octubre de 2026 el proyecto Node.js publicó versiones de seguridad para sus tres ramas con soporte: 22.23.4, 24.22.1 y 26.12.1. Corrigen diez vulnerabilidades, cuatro de severidad alta. La más grave, CVE-2026-111497, es una escritura fuera de límites en el decodificador Brotli incluido en Node.js que permite filtrar memoria del proceso o ejecutar código. Este artículo delimita qué aplicaciones procesan datos Brotli sin saberlo, ordena la actualización según el entorno y propone una verificación por servidor.
El aviso oficial no documenta soluciones alternativas: la corrección es actualizar.
Explicación para quien no administra servidores
Node.js es el entorno en el que se ejecuta JavaScript del lado del servidor. Lo usan APIs, tiendas en línea, paneles internos y sitios hechos con Next.js, Nuxt o Express. Brotli es un formato de compresión que reduce el tamaño de lo que viaja por la red; Node.js lo descomprime automáticamente en varios puntos.
La falla permite que un contenido comprimido con intención maliciosa haga que el servidor escriba fuera de la zona de memoria que le corresponde. Los investigadores demostraron que eso basta para leer memoria del proceso o ejecutar órdenes con sus mismos permisos. Para una empresa, la pregunta útil a su equipo o proveedor es: «¿qué versión de Node.js ejecutan nuestros servicios y cuándo se volvieron a desplegar?».
Las diez vulnerabilidades del 21 de octubre
| CVE | Severidad | Descripción oficial resumida |
|---|---|---|
| CVE-2026-111497 | Alta | Escritura fuera de límites en el decodificador Brotli; ejecución remota de código |
| CVE-2026-105483 | Alta | Evasión de la verificación del nombre en certificados TLS con IP escrita en dígitos de ancho completo (24.x y 26.x) |
| CVE-2026-106069 | Alta | Evasión de la verificación del nombre TLS cuando el host se resuelve de forma laxa a una IP |
| CVE-2026-105482 | Alta | dns.resolve trunca nombres que contienen el carácter NUL |
| CVE-2026-105481 | Media | Un socket keep-alive procesa una respuesta escrita antes de enviar la petición |
| CVE-2026-106072 | Media | Validación incorrecta de certificados para IPv4 no canónicas |
| CVE-2026-106074 | Media | Las cachés de entropía de crypto.randomUUID() y randomInt() quedan guardadas en snapshots y ejecutables SEA |
| CVE-2026-106070 | Baja | ZipFile devuelve bytes controlados por el atacante tras una cabecera ZIP inválida (26.x) |
| CVE-2026-106071 | Baja | Concesión excesiva en el Permission Model por comodines (26.x) |
| CVE-2026-106073 | Baja | Evasión del Permission Model con fs.realpathSync |
La publicación también actualiza dependencias internas: c-ares, Undici, OpenSSL (22.x y 24.x), SQLite (22.x) y el almacén de certificados raíz, que retira la confianza en los intermediarios comprometidos de eMudhra.
Superficie expuesta a CVE-2026-111497
Según el boletín de Vercel, la exposición existe cuando la aplicación o una biblioteca que usa descomprime datos Brotli controlados por un tercero, ya sea en el cuerpo de una petición entrante o en una respuesta que el servidor descarga. Esa segunda vía es la menos evidente: un servicio que consulta APIs externas con fetch() recibe respuestas que se descomprimen según el encabezado Content-Encoding.
La distinción importa para la defensa. Un firewall de aplicaciones (WAF) inspecciona el tráfico entrante, pero no las respuestas que el servidor obtiene de otros sitios. Por eso Vercel, aunque desplegó reglas de WAF, recomienda actualizar todo Node.js que no administre, incluidos backends externos, contenedores propios, ejecutores de CI y equipos de desarrollo.

Versiones corregidas y ramas sin soporte
- Node.js 26.x: 26.12.1.
- Node.js 24.x: 24.22.1.
- Node.js 22.x: 22.23.4.
- Node.js 20.x y 25.x: fin de vida, sin corrección. El proyecto recuerda que las versiones sin soporte siempre quedan afectadas en cada publicación de seguridad.
Actualización según el entorno
- Servidores con nvm, binarios oficiales o paquetes de NodeSource: instalar la versión corregida y reiniciar cada proceso (pm2, systemd, Docker). Un proceso en ejecución conserva el binario anterior.
- Contenedores: reconstruir sobre una imagen base corregida, por ejemplo
node:24descargada de nuevo, y redesplegar. Las imágenes ya construidas no cambian solas. - Plataformas administradas: confirmar con el proveedor la versión aplicada. En Vercel, los proyectos en Node.js 20.x deben cambiar a 22.x o 24.x y volver a desplegar.
- Distribuciones de Linux y CloudLinux: aplicar el paquete del proveedor y comprobar en su aviso que incluye CVE-2026-111497.
- Snapshots de arranque y ejecutables SEA: como criterio, conviene regenerarlos con la versión corregida, porque CVE-2026-106074 describe valores de entropía que quedan guardados dentro del artefacto generado.
Procedimiento de verificación
- Inventariar servicios, funciones, contenedores y ejecutores de CI que usen Node.js, incluido el que viene dentro de herramientas de terceros.
- Obtener la versión en ejecución, no la instalada:
node -p process.versiondentro del contenedor o el entorno del servicio, o un registro de arranque que la imprima. - Compararla con 22.23.4, 24.22.1 o 26.12.1, según la rama.
- Confirmar la fecha del último despliegue o reinicio de cada servicio.
- En servicios que llaman a APIs externas, revisar si alguna dependencia fija una versión propia de Node.js, como imágenes base antiguas en
Dockerfileo el campoenginesenpackage.json.
Preguntas frecuentes
Mi aplicación no usa Brotli de forma explícita. ¿Estoy expuesto?
Posiblemente. La descompresión ocurre dentro de fetch(), de middlewares y de bibliotecas HTTP sin que el código lo pida. La forma segura de descartarlo es actualizar.
¿Next.js tiene relación con esta falla?
Next.js se ejecuta sobre Node.js, así que hereda la exposición del entorno. Aparte, el 14 de octubre Next.js publicó sus propias correcciones para las ramas 15.5.x y 16.x, que conviene aplicar en el mismo ciclo.
Fuentes
- Node.js, October 2026 Security Releases.
- Vercel, boletín sobre CVE-2026-111497.
- CloudLinux, actualizaciones de alt-nodejs.
Apoyo para actualizar Node.js
Xterra Engine revisa inventarios de servicios Node.js, prepara la actualización de imágenes y despliegues, y migra aplicaciones que siguen en ramas sin soporte. Para solicitar apoyo o una cotización, escriba a info@xterraengine.com o use el formulario de contacto.