Node.js ha publicado actualizaciones de seguridad para 12 vulnerabilidades que afectan a sus líneas de versión 22.x, 24.x y 26.x compatibles. Las correcciones están disponibles en Node.js 22.23.0, Node.js 24.17.0 y Node.js 26.3.1, según el funcionarioComunicado de seguridad del 18 de junio.
Los dos fallos de alta gravedad son CVE-2026-48618 y CVE-2026-48933. CVE-2026-48618 puede permitir una omisión de autenticación de profundidad de comodín TLS en las configuraciones afectadas, mientras que CVE-2026-48933 puede bloquear un proceso Node.js a través de una gran entrada de cifrado WebCrypto.
Los desarrolladores y administradores deben actualizar rápidamente, especialmente si Node.js ejecuta API orientadas a Internet, servicios de autenticación, clientes con capacidad de proxy, clientes HTTP/2 o aplicaciones que utilizan el modelo de permisos experimental.
Lo que Node.js solucionó en la actualización de junio de 2026
La actualización de junio incluye correcciones de seguridad en TLS, WebCrypto, HTTP/2, DNS, manejo de proxy, permisos de archivos, sockets de dominio Unix y el agente HTTP. Varios problemas afectan a todas las líneas de versiones compatibles, mientras que CVE-2026-48936 afecta solo a Node.js 26.
El lanzamiento también actualiza las dependencias clave utilizadas por Node.js, incluidas llhttp 9.4.2, nghttp2 1.69.0, OpenSSL 3.5.7 y diferentes versiones undici para cada línea de lanzamiento.
El funcionarioBoletín de seguridad de Node.jsdice que la gravedad más alta para Node.js 22, 24 y 26 es Alta. Las versiones al final de su vida útil siguen siendo inseguras para la producción porque ya no reciben las actualizaciones de seguridad normales.
| línea de liberación | Versión parcheada | Estado | Notas |
|---|---|---|---|
| Nodo.js 22.x | Nodo.js 22.23.0 | Mantenimiento LTS | Incluye correcciones para problemas de gravedad alta, media y baja. |
| Nodo.js 24.x | Nodo.js 24.17.0 | LTS activo | Incluye correcciones para problemas de gravedad alta, media y baja. |
| Nodo.js 26.x | Nodo.js 26.3.1 | Actual | Incluye la corrección de permisos de socket de dominio Unix de Node.js 26 únicamente |
Los problemas más graves afectan a TLS y WebCrypto
CVE-2026-48618 afecta el manejo de nombres de host TLS. Node.js dice que el manejo del separador de puntos Unicode puede crear una falta de coincidencia entre la normalización del nombre de host del solucionador y del verificador, lo que puede llevar a una omisión de autenticación de profundidad de comodín en las configuraciones afectadas.
Este problema es importante para las aplicaciones que dependen de estrictas comprobaciones de identidad TLS. Si la verificación del nombre de host se comporta de manera diferente a la resolución de nombres, los atacantes pueden cruzar un límite de confianza previsto en patrones de implementación específicos.
CVE-2026-48933 afecta a la API WebCrypto. Una falla en la implementación de WebCrypto puede bloquear el proceso si la entrada a sutile.encrypt() es un múltiplo de 2 GiB, creando un riesgo de denegación de servicio para las aplicaciones que procesan entradas de cifrado controladas por atacantes.
Los fallos de gravedad media afectan a HTTP/2, TLS, SNI y el manejo de proxy
Node.js también solucionó varios problemas de gravedad media que pueden debilitar las decisiones de confianza o provocar el agotamiento de los recursos. CVE-2026-48934 puede omitir la verificación de identidad del host TLS mediante la reutilización de la sesión con un nombre de servidor diferente.
CVE-2026-48928 afecta la coincidencia de contexto SNI. En implementaciones TLS mutuas multicontexto, la coincidencia de nombres de host que distinguen entre mayúsculas y minúsculas puede provocar la omisión de autorización.
CVE-2026-48619 afecta a los clientes HTTP/2. Un servidor malicioso puede enviar tramas ORIGIN controladas por un atacante que provocan un crecimiento ilimitado de la memoria y, finalmente, desencadenan una condición de falta de memoria.
| CVE | Asunto | Gravedad | Líneas de liberación afectadas |
|---|---|---|---|
| CVE-2026-48933 | El desbordamiento de enteros de WebCrypto AES puede bloquear el proceso | Alto | 22.x, 24.x, 26.x |
| CVE-2026-48618 | El manejo del separador de puntos Unicode puede evitar la autenticación de profundidad con comodines TLS | Alto | 22.x, 24.x, 26.x |
| CVE-2026-48615 | Las credenciales de proxy pueden filtrarse en mensajes de error ERR_PROXY_TUNNEL | Medio | 22.x, 24.x, 26.x |
| CVE-2026-48619 | Los marcos HTTP/2 ORIGIN pueden provocar un crecimiento ilimitado de la memoria | Medio | 22.x, 24.x, 26.x |
| CVE-2026-48937 | Es posible que las sesiones HTTP/2 no se limpien después de GOAWAY debido a errores de protocolo no válidos | Medio | 22.x, 24.x |
| CVE-2026-48928 | La coincidencia de contexto SNI en mayúsculas puede provocar la omisión de autorización mTLS | Medio | 22.x, 24.x, 26.x |
| CVE-2026-48930 | Los nombres de host NUL incorporados pueden provocar una nueva vinculación silenciosa de la autoridad | Medio | 22.x, 24.x, 26.x |
| CVE-2026-48934 | Omisión de verificación de identidad del host TLS mediante la reutilización de la sesión | Medio | 22.x, 24.x, 26.x |
| CVE-2026-48617 | Omisión del modelo de permiso a través del manejo de ruta Process.report.writeReport() | Bajo | 22.x, 24.x, 26.x |
| CVE-2026-48935 | Omisión del modelo de permiso a través de FileHandle.utimes() | Bajo | 22.x, 24.x, 26.x |
| CVE-2026-48936 | El servidor de socket de dominio Unix puede eludir las restricciones de red del modelo de permisos | Bajo | 26.x solamente |
| CVE-2026-48931 | Envenenamiento de la cola de respuesta HTTP a través de una condición de carrera en http.Agent | Bajo | 22.x, 24.x, 26.x |
Por qué son importantes los errores de proxy y nombre de host
CVE-2026-48615 puede exponer las credenciales del proxy en mensajes de error ERR_PROXY_TUNNEL cuando las credenciales están incrustadas en las URL del proxy. Eso puede crear un riesgo secundario si los errores se escriben en registros, diagnósticos, sistemas de monitoreo o herramientas de depuración compartidas.
CVE-2026-48930 afecta a los nombres de host que incluyen bytes nulos incrustados. Node.js solucionó el comportamiento del solucionador que, de otro modo, podría truncar un nombre de host en el límite de la cadena C y volver a vincular la autoridad de forma silenciosa.
Estos problemas no afectan a todas las aplicaciones de la misma manera. Las implementaciones de mayor riesgo son aquellas que aceptan nombres de host que no son de confianza, utilizan servidores proxy con credenciales integradas, dependen de enrutamiento TLS complejo o ejecutan servicios de red multiinquilino.
Las omisiones del modelo de permisos también recibieron correcciones
Node.js solucionó tres problemas de baja gravedad relacionados con el modelo de permisos. CVE-2026-48617 implica la validación de ruta de proceso.report.writeReport(), mientras que CVE-2026-48935 permite la modificación de metadatos de archivos a través de FileHandle.utimes() incluso cuando una ruta está limitada al acceso de lectura.
CVE-2026-48936 afecta únicamente a Node.js 26. Permite que un servidor de socket de dominio Unix local se inicie sin el permiso de red requerido, debido a una solución incompleta para CVE-2026-21636.
Estas fallas tienen una gravedad menor, pero aún son importantes para entornos de espacio aislado o de tiempo de ejecución restringido. Los desarrolladores que utilizan el modelo de permisos deben actualizar incluso si sus aplicaciones no utilizan TLS, HTTP/2 o WebCrypto directamente.
Se incluyen actualizaciones de dependencia.
El lanzamiento incluye importantes actualizaciones de dependencias en todas las líneas Node.js compatibles. Node.js actualizó llhttp a 9.4.2, nghttp2 a 1.69.0 y OpenSSL a 3.5.7 en las tres líneas admitidas.
Node.js también actualizó undici de manera diferente en todas las líneas de lanzamiento: undici 6.27.0 para 22.23.0, undici 7.28.0 para 24.17.0 y undici 8.5.0 para 26.3.1.
Los equipos que crean imágenes de contenedores no solo deben actualizar las máquinas de los desarrolladores locales. Deberían reconstruir imágenes base, ejecutores de CI, capas sin servidor y contenedores de producción que empaqueten Node.js directamente.
- Actualice las implementaciones de Node.js 22.x a la última versión 22.23.0.
- Actualice las implementaciones de Node.js 24.x a la última versión 24.17.0.
- Actualice las implementaciones de Node.js 26.x a la última versión 26.3.1.
- Reconstruya imágenes de Docker y Kubernetes que incluyan Node.js.
- Compruebe los tiempos de ejecución sin servidor, las imágenes de CI y las estaciones de trabajo de los desarrolladores.
- Revise los registros para determinar la exposición de las credenciales de proxy si se utilizaron rutas de proxy afectadas.
Las líneas de lanzamiento admitidas deben recibir prioridad
Las líneas de versión actualmente admitidas son Node.js 22, 24 y 26.Calendario de lanzamiento de Node.jsenumera 22.x como LTS de mantenimiento, 24.x como LTS activo y 26.x como Actual.
Node.js 20 ya finalizó su vida útil el 30 de abril de 2026. Las versiones anteriores no deben permanecer en producción a menos que una organización tenga un acuerdo de soporte comercial separado y un plan de migración claro.
Las aplicaciones que no pueden actualizarse inmediatamente deben reducir la exposición limitando las entradas que no son de confianza, revisando el uso de TLS y proxy, y colocando los servicios afectados detrás de controles de red más estrictos hasta que se pueda reemplazar el tiempo de ejecución.
Qué deberían hacer los desarrolladores y administradores ahora
Los administradores primero deben identificar cada tiempo de ejecución de Node.js en producción, preparación, sistemas de compilación e imágenes de contenedores. Muchas organizaciones parchean las dependencias de las aplicaciones, pero olvidan el tiempo de ejecución empaquetado en imágenes más antiguas.
Los desarrolladores también deben probar las aplicaciones después de la actualización porque los cambios de dependencia en OpenSSL, undici, nghttp2 y llhttp pueden afectar el comportamiento de la red. Los conjuntos de pruebas deben cubrir conexiones TLS, túneles proxy, clientes HTTP/2, llamadas WebCrypto y ejecución con permisos restringidos.
Las notas de la versión paraNode.js 22.23.0 LTS,Node.js 24.17.0 LTS, yNode.js 26.3.1 actualEnumere los CVE parcheados y las confirmaciones incluidas en cada rama.
- Ejecute node -v en hosts de producción y sistemas de compilación.
- Actualice los sistemas afectados a 22.23.0, 24.17.0 o 26.3.1.
- Reconstruya contenedores, imágenes base y archivos binarios empaquetados.
- Vuelva a probar la verificación del nombre de host TLS y el comportamiento de enrutamiento mTLS.
- Revise las URL de proxy que incluyan nombres de usuario o contraseñas.
- Registros de auditoría para credenciales de proxy expuestas después de solicitudes fallidas de túnel de proxy.
- Verifique los clientes HTTP/2 que se conectan a servidores de terceros o que no son de confianza.
- Vuelva a probar las aplicaciones que dependen del modelo de permisos.
Las versiones de Node.js al final de su vida útil siguen siendo un riesgo
Elcalendario de lanzamiento oficialmuestra Node.js 20, 21, 23 y 25 como final de vida útil. Estas sucursales no reciben las mismas versiones de seguridad estándar que las líneas admitidas.
Para las empresas que ejecutan grandes servicios de JavaScript, el camino más seguro es estandarizar las versiones LTS compatibles y mantener las actualizaciones en tiempo de ejecución como parte de las operaciones normales de parches. Los fallos en tiempo de ejecución pueden afectar a todas las aplicaciones que dependen de la misma compilación de Node.js.
Esta versión de junio de 2026 es especialmente importante porque corrige fallas en las redes centrales, la criptografía, HTTP/2 y la aplicación de permisos. Esas áreas se encuentran cerca del límite de seguridad de muchos servicios de Node.js.
Preguntas frecuentes
¿Qué solucionó Node.js en la actualización de seguridad de junio de 2026?
Node.js corrigió 12 vulnerabilidades en las líneas de versión 22.x, 24.x y 26.x compatibles. Los problemas afectan la verificación del nombre de host TLS, WebCrypto, HTTP/2, el manejo de errores de proxy, el manejo de nombres de host y DNS, el agente HTTP y el modelo de permisos.
¿Qué versiones de Node.js incluyen las correcciones?
Las versiones corregidas son Node.js 22.23.0, Node.js 24.17.0 y Node.js 26.3.1. Los desarrolladores y administradores deben actualizar las implementaciones 22.x, 24.x y 26.x afectadas a esas versiones o posteriores.
¿Cuáles son las dos vulnerabilidades de alta gravedad de Node.js?
Las dos vulnerabilidades de alta gravedad son CVE-2026-48618 y CVE-2026-48933. CVE-2026-48618 puede permitir una omisión de autenticación de profundidad de comodín TLS, mientras que CVE-2026-48933 puede bloquear un proceso Node.js a través de una gran entrada de cifrado WebCrypto.
¿La actualización de Node.js afecta a todas las aplicaciones?
Las vulnerabilidades se encuentran en el tiempo de ejecución de Node.js, por lo que cualquier aplicación que ejecute una versión de Node.js afectada debería actualizarse. El riesgo real depende de cómo la aplicación utiliza TLS, WebCrypto, HTTP/2, túneles proxy, nombres de host y restricciones de permisos.
¿Deberían las empresas seguir utilizando versiones de Node.js al final de su vida útil?
No. Las versiones de Node.js al final de su vida útil no deben usarse en producción sin un plan de soporte comercial separado. No reciben actualizaciones de seguridad normales, lo que deja a las aplicaciones expuestas a vulnerabilidades conocidas en tiempo de ejecución.
