Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Node.js corrige 16 fallos de seguridad que exponían claves TLS y tumbaban servidores


El proyecto Node.js ha lanzado correcciones para 16 vulnerabilidades de seguridad en sus versiones 22.x, 24.x y 26.x. De estas, siete son calificadas como graves, seis como medias y tres como bajas. Las versiones parcheadas son la v22.23.5, v24.22.3 y v26.13.1, actualización que también incluye mejoras en los componentes llhttp, undici y sqlite para evitar riesgos como la exposición de claves privadas TLS y la caída remota de servidores.





El proyecto Node.js ha lanzado correcciones para 16 fallos de seguridad en sus líneas 22.x, 24.x y 26.x. Siete están calificados como graves, seis como medios y tres como bajos. El aviso oficial indica que las versiones parcheadas son v22.23.5, v24.22.3 y v26.13.1. La actualización también renueva tres componentes incluidos: llhttp, undici y sqlite.




Fuga de memoria podría exponer claves privadas TLS

El fallo de gravedad alta es el CVE-2026-123864. Afecta al código HTTPS en las tres líneas. Un cliente sin inicio de sesión puede leer memoria que pertenece a otras conexiones. Esa memoria puede contener claves privadas TLS y solicitudes de otros usuarios.

La causa es un problema de reentrada. Una escritura TLS de longitud cero puede hacer que Node.js descifre el siguiente registro mientras el analizador HTTP todavía está leyendo un cuerpo. Esto provoca un use-after-free y una lectura fuera de límites, por lo que el servidor copia memoria antigua del montón (heap) en el cuerpo de la solicitud.

Un servidor está en riesgo solo si un manejador llama a res.flushHeaders() prematuramente y luego termina con un fragmento no vacío. Una ruta que devuelve o almacena los cuerpos de las solicitudes permite al atacante leer la fuga. El node:http básico no se ve afectado, según las notas de seguridad de Node.js.

El código HTTP/2 representa la mayor parte de la lista. El CVE-2026-123863 permite que cualquier cliente aborte un servidor HTTP/2 predeterminado. Es una variante del CVE-2024-27983 que la corrección anterior omitió. El CVE-2026-123874 y el CVE-2026-123875 afectan a servidores que envían archivos con respondWithFile(). Uno corrompe la memoria; el otro provoca la caída del servidor cuando se cancela una descarga, y bastan unas pocas solicitudes canceladas.

El CVE-2026-123866 puede enviar memoria de respuesta liberada a un par, lo que podría incluir datos de respuesta de otros usuarios. El CVE-2026-123865 filtra memoria y descriptores de archivos permanentemente una vez que una sesión falla durante el cierre. Repara un hueco dejado por el CVE-2026-48937, que cubrimos en nuestro informe de parches de Node.js de junio.

Dos fallos medios también son importantes. El CVE-2026-123868 permite que un cliente envíe tramas diminutas de un solo byte y haga que el servidor conserve unos 114 bytes por cada 10 bytes enviados. Un solo flujo puede entonces ocupar cientos de megabytes. El CVE-2026-123828 es un desbordamiento de montón de un byte en session.altsvc() que aborta el proceso cuando una aplicación le pasa un valor :authority largo.

#CVEGravedadLíneas AfectadasProblema
1CVE-2026-123863Alta24.x, 26.xLa aserción de cierre de sesión HTTP/2 permite que un cliente remoto aborte el servidor
2CVE-2026-123864Alta22.x, 24.x, 26.xEscritura TLS de longitud cero en HTTPS reentra en llhttp y filtra memoria del montón, incluyendo claves privadas TLS
3CVE-2026-123865Alta22.x, 24.x, 26.xLas sesiones HTTP/2 nunca se limpian tras un error de protocolo durante el cierre, filtrando memoria y descriptores de archivos
4CVE-2026-123866Alta22.x, 24.x, 26.xUse-after-free en el cierre de flujo HTTP/2 envía memoria de respuesta liberada al par
5CVE-2026-126051Alta24.x, 26.xCallbacks de handshake TLS diferidos causan una excepción remota no capturada que mata el servidor
6CVE-2026-123872Alta22.x, 24.x, 26.xLa renegociación TLS 1.2 permite que un cliente cambie el servername y evite las comprobaciones de certificado del cliente
7CVE-2026-123874Alta24.x, 26.xUse-after-free de HTTP/2 en respondWithFile() con flujos restablecidos durante una escritura pendiente
8CVE-2026-123828Media24.x, 26.xDesbordamiento de montón de un byte en session.altsvc() con un origen largo
9CVE-2026-123867Media22.x, 24.x, 26.xLa anulación de cliente-CA en SNI solo para CA vuelve a la CA predeterminada, evadiendo mTLS por host
10CVE-2026-123868Media24.x, 26.xDatos entrantes HTTP/2 en un flujo no drenado escapan a maxSessionMemory, permitiendo el agotamiento de memoria
11CVE-2026-123871Media22.x, 24.x, 26.xCredenciales de proxy expuestas en mensajes de error ERR_PROXY_INVALID_CONFIG
12CVE-2026-123877Media22.x, 24.x, 26.xhttps.Agent reutiliza una sesión TLS entre diferentes políticas de CA, evadiendo la validación de certificados
13CVE-2026-123875Media22.x, 24.x, 26.xCancelar una descarga de respondWithFile() provoca una desreferencia NULL y tumba el servidor
14CVE-2026-123829Baja22.x, 24.x, 26.xfs.watch recursivo filtra nombres de archivos que el Modelo de Permisos deniega (macOS y Windows)
15CVE-2026-123862Baja22.x, 24.x, 26.xUn params() de zlib pendiente más destroy() lanza una aserción no capturable y finaliza el proceso
16CVE-2026-106071Baja22.x, 24.x, 26.xLa búsqueda con comodín del Modelo de Permisos concede acceso al sistema de archivos en exceso

Fallo en el inicio de sesión y comprobaciones de certificados

Varios errores debilitan las comprobaciones de confianza. El CVE-2026-123872 permite que un cliente cambie el nombre del servidor durante la renegociación TLS 1.2. Esto puede trasladar un inicio de sesión normal a un host que requiere certificados de cliente más estrictos. El CVE-2026-123867 es un bypass de TLS mutuo por host relacionado. Un host configurado solo con una CA vuelve a la CA predeterminada, permitiendo la entrada al cliente equivocado.

El CVE-2026-123877 afecta a https.Agent. Una sesión TLS almacenada en caché de una política de confianza amplia puede ser reutilizada por una solicitud con una política más estricta. La segunda solicitud informa entonces que authorized === true cuando no debería ser así.

El CVE-2026-126051 permite que un cliente remoto haga caer servidores TLS que utilizan hooks como SNICallback o addContext(). El CVE-2026-123871 imprime credenciales de proxy dentro de los errores ERR_PROXY_INVALID_CONFIG, lo que coloca secretos en los registros y reportes de errores. Esto repite la lección del CVE-2026-48615.

Los tres fallos bajos afectan al Modelo de Permisos y a zlib. El CVE-2026-123829 filtra nombres de archivos en macOS y Windows. El CVE-2026-106071 permite que una concesión con comodín coincida con más rutas de las previstas. El CVE-2026-123862 puede hacer caer una aplicación que llame a deflate.params() mientras realiza streaming, aunque ese uso es raro.

El investigador Chris Rohlf, trabajando con Claude y Anthropic Research, reportó cinco de los 16 fallos. Otros informantes incluyen a Pimterry, Trail of Bits y varios investigadores independientes. Matteo Collina corrigió la mayoría de ellos.

Este lanzamiento siguió a una advertencia corta. Nuestra noticia anterior sobre el parche programado señaló que el aviso no daba detalles de los CVE. La lista completa ya es pública. El error de Brotli Node2Shell de octubre y las 11 correcciones de julio muestran que Node.js lanza correcciones graves casi cada mes.

Actualiza primero a v22.23.5, v24.22.3 o v26.13.1. Los servidores HTTPS y HTTP/2 públicos deben ser los primeros. Luego, reconstruye las imágenes de los contenedores para que lleven el nuevo entorno de ejecución. Los equipos que sirvieron tráfico desde un manejador HTTPS vulnerable deberían considerar reemplazar sus claves TLS, ya que la memoria filtrada no deja un rastro claro. Las versiones que han llegado al final de su vida útil siempre están afectadas, así que deja de usarlas. El calendario de lanzamientos de Node.js detalla las fechas de soporte.



Fuentes:
https://cybersecuritynews.com/node-js-fixes-16-security-vulnerabilities/