Alerta

Logo de Node.js

Alerta 2026-161 Node.js corrige 16 vulnerabilidades, siete de gravedad alta, en HTTP/2 y TLS

Producto(s) afectado(s): 

ProductoVersiones afectadas
Node.js 26.xAnteriores a 26.13.1 (las 16 CVE de este lote).
Node.js 24.xAnteriores a 24.22.3 (las 16 CVE de este lote).
Node.js 22.xAnteriores 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.

CVEGravedadLíneasQué es
CVE-2026-123863Alta24.x, 26.xAborto remoto por aserción al cerrar una sesión HTTP/2
CVE-2026-123864Alta22.x, 24.x, 26.xReentrada del parser HTTPS; puede filtrar memoria, incl. claves TLS
CVE-2026-123865Alta22.x, 24.x, 26.xSesiones HTTP/2 que no se limpian; fuga de memoria y descriptores
CVE-2026-123866Alta22.x, 24.x, 26.xUAF al cerrar un stream HTTP/2; puede enviar memoria liberada
CVE-2026-126051Alta24.x, 26.xExcepción no capturada remota en TLS; termina el proceso
CVE-2026-123872Alta22.x, 24.x, 26.xRenegociación TLS 1.2 cambia el servername y evade mTLS por host
CVE-2026-123874Alta24.x, 26.xUAF de Http2Stream con respondWithFile() o respondWithFD()
CVE-2026-123828Media24.x, 26.xDesbordamiento de heap de 1 byte en session.altsvc()
CVE-2026-123867Media22.x, 24.x, 26.xEl CA del contexto SNI falla abierto al CA por defecto (mTLS)
CVE-2026-123868Media24.x, 26.xDatos HTTP/2 entrantes no contabilizados; agotamiento de memoria
CVE-2026-123871Media22.x, 24.x, 26.xCredenciales de proxy en errores ERR_PROXY_INVALID_CONFIG
CVE-2026-123877Media22.x, 24.x, 26.xhttps.Agent reutiliza una sesión TLS entre políticas de CA
CVE-2026-123875Media22.x, 24.x, 26.xCancelar respondWithFile() cae el servidor (desreferencia nula)
CVE-2026-123829Baja22.x, 24.x, 26.xfs.watch recursivo revela nombres denegados (macOS y Windows)
CVE-2026-123862Baja22.x, 24.x, 26.xzlib params()+destroy() lanza una aserción no capturable
CVE-2026-106071Baja22.x, 24.x, 26.xSobre-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íneaCorrección
Node.js 26.x26.13.1 o posterior
Node.js 24.x24.22.3 o posterior
Node.js 22.x22.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: