Producto(s) afectado(s):
| Producto | Versiones afectadas |
| Node.js 26.x | Anteriores a 26.13.1 (las 16 CVE de este lote). |
| Node.js 24.x | Anteriores a 24.22.3 (las 16 CVE de este lote). |
| Node.js 22.x | Anteriores a 22.23.5. Según el aviso oficial, no está afectada por 123863, 126051, 123874, 123828 ni 123868. |
El fabricante indica que las versiones fuera de soporte permanecen afectadas. No publicó puntajes CVSS.
Descripción
Se han publicado las actualizaciones de seguridad 26.13.1, 24.22.3 y 22.23.5 de Node.js, difundidas el 11/11/2026, que corrigen dieciséis vulnerabilidades: siete de gravedad alta, seis de media y tres de baja, según el proveedor. El fabricante no publicó puntajes CVSS. La gravedad más alta corregida en las tres líneas activas es alta. Las versiones fuera de soporte permanecen afectadas.
| CVE | Gravedad | Líneas | Qué es |
| CVE-2026-123863 | Alta | 24.x, 26.x | Aborto remoto por aserción al cerrar una sesión HTTP/2 |
| CVE-2026-123864 | Alta | 22.x, 24.x, 26.x | Reentrada del parser HTTPS; puede filtrar memoria, incl. claves TLS |
| CVE-2026-123865 | Alta | 22.x, 24.x, 26.x | Sesiones HTTP/2 que no se limpian; fuga de memoria y descriptores |
| CVE-2026-123866 | Alta | 22.x, 24.x, 26.x | UAF al cerrar un stream HTTP/2; puede enviar memoria liberada |
| CVE-2026-126051 | Alta | 24.x, 26.x | Excepción no capturada remota en TLS; termina el proceso |
| CVE-2026-123872 | Alta | 22.x, 24.x, 26.x | Renegociación TLS 1.2 cambia el servername y evade mTLS por host |
| CVE-2026-123874 | Alta | 24.x, 26.x | UAF de Http2Stream con respondWithFile() o respondWithFD() |
| CVE-2026-123828 | Media | 24.x, 26.x | Desbordamiento de heap de 1 byte en session.altsvc() |
| CVE-2026-123867 | Media | 22.x, 24.x, 26.x | El CA del contexto SNI falla abierto al CA por defecto (mTLS) |
| CVE-2026-123868 | Media | 24.x, 26.x | Datos HTTP/2 entrantes no contabilizados; agotamiento de memoria |
| CVE-2026-123871 | Media | 22.x, 24.x, 26.x | Credenciales de proxy en errores ERR_PROXY_INVALID_CONFIG |
| CVE-2026-123877 | Media | 22.x, 24.x, 26.x | https.Agent reutiliza una sesión TLS entre políticas de CA |
| CVE-2026-123875 | Media | 22.x, 24.x, 26.x | Cancelar respondWithFile() cae el servidor (desreferencia nula) |
| CVE-2026-123829 | Baja | 22.x, 24.x, 26.x | fs.watch recursivo revela nombres denegados (macOS y Windows) |
| CVE-2026-123862 | Baja | 22.x, 24.x, 26.x | zlib params()+destroy() lanza una aserción no capturable |
| CVE-2026-106071 | Baja | 22.x, 24.x, 26.x | Sobre-concesión por comodín en –allow-fs-read o –allow-fs-write |
CVE-2026-123864, de gravedad alta, afecta a servidores HTTPS en 22.x, 24.x y 26.x: una escritura de longitud cero puede reentrar en el parser y provocar un use-after-free y una lectura fuera de límites. Según el fabricante, un cliente remoto sin autenticación puede llegar a leer memoria de otras conexiones, incluidas claves privadas TLS y peticiones de otros usuarios. No afecta al HTTP en claro.
Cuatro fallas de gravedad alta afectan al HTTP/2. CVE-2026-123863, solo en 24.x y 26.x, permite a un cliente remoto sin autenticación abortar el servidor al desencadenar una aserción cuando se destruye la sesión, tanto sobre TLS como en claro; el fabricante la describe como una variante de una corrección anterior incompleta. CVE-2026-123865, en 22.x, 24.x y 26.x, deja sesiones sin limpiar tras un error de protocolo durante el cierre, con una fuga permanente de memoria y de descriptores; es una corrección incompleta de CVE-2026-48937. CVE-2026-123866, en las tres líneas, es un use-after-free al cerrar un stream que puede enviar al par memoria ya liberada, incluidas respuestas de otras conexiones. CVE-2026-123874, solo en 24.x y 26.x, es un use-after-free de Http2Stream cuando se usa respondWithFile() o respondWithFD() y el stream se reinicia durante una escritura pendiente.
En TLS, CVE-2026-126051, de gravedad alta y limitada a 24.x y 26.x, permite a un atacante remoto sin autenticación provocar una excepción no capturada que termina el proceso, a través de callbacks diferidos del handshake, cuando el servidor usa SNICallback, OCSPRequest, newSession, resumeSession o addContext. CVE-2026-123872, en 22.x, 24.x y 26.x, permite que un cliente, en una renegociación TLS 1.2, cambie el servername y lleve su autenticación a un host con una política de certificado de cliente más estricta.
Entre las de gravedad media, CVE-2026-123828 (solo 24.x y 26.x) es un desbordamiento de heap de un byte en session.altsvc() cuando se pasa un origen largo. CVE-2026-123868 (solo 24.x y 26.x) no contabiliza en maxSessionMemory los datos HTTP/2 entrantes retenidos en un stream no drenado, lo que puede agotar memoria. CVE-2026-123867, en las tres líneas, hace que un contexto SNI que solo define CA falle abierto hacia el CA por defecto y evada la autorización mTLS por host. CVE-2026-123877 permite que https.Agent reutilice una sesión TLS autenticada bajo una política de CA y la aplique a otra más estricta. CVE-2026-123871 revela credenciales de proxy en mensajes ERR_PROXY_INVALID_CONFIG, en rutas que no cubrió una corrección anterior (CVE-2026-48615). CVE-2026-123875 permite a un cliente sin autenticación derribar el servidor (desreferencia nula) al cancelar una descarga iniciada con respondWithFile() o respondWithFD(), tanto sobre TLS como en claro.
Las tres de gravedad baja afectan a 22.x, 24.x y 26.x. CVE-2026-123829, en el Permission Model, permite que un fs.watch recursivo revele nombres de archivos o directorios denegados en macOS y Windows, no su contenido. CVE-2026-123862 hace que la combinación de params() y destroy() en zlib lance una aserción interna no capturable y termine el proceso, en un uso poco frecuente de la API. CVE-2026-106071 concede acceso de lectura o escritura a rutas que no deberían coincidir con una regla con comodín en –allow-fs-read o –allow-fs-write, cuando esa regla queda en la raíz del árbol de permisos.
El fabricante no informa explotación de estas vulnerabilidades. No se identificó una prueba de concepto pública. Este lote también actualiza dependencias: llhttp en 22.x, 24.x y 26.x; undici en 24.x y 26.x; y sqlite en 22.x y 24.x.
Mitigación
Se recomienda inventariar las instalaciones de Node.js, anotar la línea y la versión exacta, y actualizar a la corrección de la rama en uso. Conviene priorizar los servidores expuestos que usen HTTP/2 o HTTPS/TLS con SNICallback, OCSP o autenticación mutua por host, y planificar la migración de las líneas fuera de soporte. El fabricante no publicó soluciones alternativas oficiales.
Estas medidas no reemplazan la actualización. El parche no deshace un compromiso previo.
Detección
El fabricante no publicó indicadores de compromiso. La detección queda limitada a inventariar la versión en ejecución y comprobar si es anterior a la corrección de su línea.
Solución
La solución consiste en actualizar cada línea activa a la versión corregida, o posterior: 26.13.1 en 26.x, 24.22.3 en 24.x y 22.23.5 en 22.x. Las versiones fuera de soporte no reciben estas correcciones; el fabricante indica que permanecen afectadas y deben migrarse a una línea soportada ya corregida.
| Línea | Corrección |
| Node.js 26.x | 26.13.1 o posterior |
| Node.js 24.x | 24.22.3 o posterior |
| Node.js 22.x | 22.23.5 o posterior |
Para info sobre cómo actualizar, visita el siguiente enlace:
https://nodejs.org/en/blog/vulnerability/november-2026-security-releases
Información adicional:
- Node.js — November 2026 Security Releases:
https://nodejs.org/en/blog/vulnerability/november-2026-security-releases - Node.js — índice de avisos de vulnerabilidad:
https://nodejs.org/en/blog/vulnerability - Node.js — notas de la versión 26.13.1:
https://nodejs.org/en/blog/release/v26.13.1 - Node.js — notas de la versión 24.22.3:
https://nodejs.org/en/blog/release/v24.22.3 - Node.js — notas de la versión 22.23.5:
https://nodejs.org/en/blog/release/v22.23.5