Nuevas vulnerabilidades críticas en Node.js. Actualice inmediatamente

El equipo de seguridad de Node.js anunció el lanzamiento de nuevas versiones de varias líneas de lanzamiento, con lo que esperan abordar cuatro vulnerabilidades en la tecnología del lado del servidor. Como recordará, Node.js es un entorno de tiempo de ejecución de JavaScript para crear aplicaciones de red escalables.

En total, los desarrolladores encontraron tres vulnerabilidades de gravedad media y un error de gravedad baja, mismos que han sido corregidos en las nuevas versiones de las ramas 12.x, 14.x, 16.x y 17.x.

La primera falla de seguridad fue identificada como CVE-2021-44531 y existe debido al manejo inadecuado de los nombres alternativos de sujeto URI. Aceptar tipos arbitrarios de nombres alternativos del sujeto (SAN) crea las condiciones para evadir los intermediarios con restricciones de nombre, reportan los desarrolladores.

Por otra parte, la falla identificada como CVE-2021-44532 es descrita como un error de omisión de verificación de certificado a través de un error de inyección de cadena. Cuando Node.js convierte las SAN a un formato de cadena, usa esta cadena para verificar los certificados de pares con los nombres de host al validar las conexiones; el formato de cadena estaba sujeto a una vulnerabilidad de inyección cuando se usaban restricciones de nombre dentro de una cadena de certificados, lo que permitía eludir las restricciones.

La última de las fallas graves fue identificada como CVE-2021-44533 y descrita como un error al manejar los campos de asunto y emisor del certificado. Ya que Node.js no administra correctamente los nombres distinguidos relativos de algunos valores, los actores de amenazas pueden crear encabezados de certificados con un Nombre Distinguido Relativo de un solo valor, esquivando la verificación del siguiente certificado.

Finalmente, el error CVE-2022-21824 permitiría la contaminación del prototipo a través de las propiedades de console.table. Debido a la lógica de formato de la función console.table(), no es seguro permitir que la entrada controlada por el usuario pasara al parámetro de propiedades mientras se pasaba simultáneamente un objeto sin formato con al menos una propiedad como primer parámetro, que podría ser __proto__ según los expertos.

Las últimas versiones de Node.js usan un prototipo nulo para el objeto al que se asignan estas propiedades para solucionar el problema. Todos los problemas se han solucionado en los lanzamientos de las versiones 12.x, 14.x, 16.x y 17.x de Node.js. Las correcciones se pueden encontrar en las plataformas oficiales del proyecto.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).