Múltiples vulnerabilidades de Node.js corregidas en una tanda de nuevas versiones

Múltiples vulnerabilidades de Node.js corregidas en una tanda de nuevas versiones

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

Los desarrolladores detrás de Node.js han publicado nuevas versiones de varias líneas de lanzamiento para solucionar cuatro vulnerabilidades en la tecnología del lado del servidor.

Node.js es un popular entorno de ejecución de JavaScript para crear aplicaciones de red escalables.

Los fallos de seguridad, tres de gravedad media y uno marcado como de gravedad baja, se han corregido en las nuevas versiones de las ramas 12.x, 14.x, 16.x y 17.x.

Fallos de riesgo medio

Tal y como se detallaba ayer (10 de enero) en un aviso de seguridad de Node.js, la primera vulnerabilidad (CVE-2021-44531) se debía al manejo inadecuado de los Subject Alternative Names (nombres alternativos de sujeto) de las URI.

Aceptar tipos arbitrarios de Subject Alternative Name (SAN), a menos que una PKI esté definida específicamente para utilizar un tipo de SAN concreto, puede dar lugar a que se eludan los intermediarios con restricción de nombres, escribieron los desarrolladores en una entrada de blog.

Node.js aceptaba tipos de URI SAN, para cuyo uso no suelen estar definidas las PKI. Además, cuando un protocolo permite URI SANs, Node.js no hacía coincidir el URI correctamente.

Este problema, del que Google informó al equipo, se ha solucionado en las nuevas versiones de Node.js, que deshabilitan el tipo URI SAN cuando se comprueba un certificado con un nombre de host.

Este comportamiento puede revertirse mediante la opción de línea de comandos --security-revert, añade el blog.

Otro problema (CVE-2021-44532) es un fallo de verificación de certificados a través de la inyección de cadenas.

Cuando Node.js convierte los SAN a un formato de cadena, utiliza esta cadena para comprobar los certificados de los compañeros contra los nombres de host al validar las conexiones.

El formato de cadena estaba sujeto a una vulnerabilidad de inyección cuando se utilizaban restricciones de nombre dentro de una cadena de certificados, lo que permitía eludir estas restricciones de nombre.

La vulnerabilidad, también reportada por Google, ya está solucionada. Las nuevas versiones escapan de los SAN que contienen los caracteres problemáticos para evitar la inyección. Este comportamiento también puede revertirse mediante la opción de línea de comandos --security-revert.

El tercer fallo de gravedad media, también reportado por Google, es el manejo incorrecto de los campos de sujeto y emisor de certificados (CVE-2021-44533).

La publicación del blog explica que Node.js no maneja correctamente los Nombres Distinguidos Relativos de varios valores.

"Los atacantes podían crear sujetos de certificados que contuvieran un Nombre Distinguido Relativo de un solo valor que fuera interpretado como un Nombre Distinguido Relativo de varios valores, por ejemplo, para inyectar un Nombre Común que permitiera eludir la verificación del sujeto del certificado", se lee.

Las versiones afectadas de Node.js, sin embargo, no aceptan Nombres Distinguidos Relativos multivalentes y, por tanto, no son vulnerables a estos ataques. Sin embargo, advierten los desarrolladores, el código de terceros que utiliza la presentación ambigua de los asuntos de los certificados de Node.js puede ser vulnerable.

Baja gravedad

Por último, un cuarto fallo de seguridad de baja gravedad (CVE-2022-21824) podría permitir la contaminación de prototipos a través de las propiedades de console.table.

Debido a la lógica de formato de la función console.table() no era seguro permitir que se pasara una entrada controlada por el usuario al parámetro properties mientras se pasaba simultáneamente un objeto plano con al menos una propiedad como primer parámetro, que podría ser __proto__, explican los desarrolladores.

Sin embargo, el error de contaminación del prototipo tiene un impacto muy limitado, ya que sólo permite asignar una cadena vacía a las claves numéricas del prototipo del objeto.

Las últimas versiones de Node.js utilizan un prototipo nulo para el objeto al que se asignan estas propiedades con el fin de solucionar el problema.

Todos los problemas se han solucionado en las versiones de Node.js 12.x, 14.x, 16.x y 17.x. Las correcciones se pueden encontrar en las notas de seguridad.

Fuente: https://portswigger.net/daily-swig/multiple-node-js-vulnerabilities-fixed-in-flurry-of-new-releases

CSIRT CELEC EP

Respuesta a Incidentes de Ciberseguridad (Análisis, Gestión, Coordinación) de nuestra Comunidad Objetivo.

Dirección: Panamericana Norte Km 7 Cuenca-Ecuador

Zona horaria: América / Guayaquil (GMT-0500)

Teléfono: +593 02 2900400  Ext: 3119

 

Search