Nueva vulnerabilidad en paquetes NPM revelada por JFrog
Nueva vulnerabilidad en paquetes NPM revelada por JFrog

Nueva vulnerabilidad en paquetes NPM revelada por JFrog

Una investigación reciente ha identificado más de 800 paquetes NPM que presentan discrepancias entre sus entradas de registro y los archivos del paquete. De estos, 18 se han relacionado directamente con una técnica denominada «Manifest Confusion».

Descubrimiento por JFrog

Los hallazgos provienen de la firma de ciberseguridad JFrog, que alerta sobre el potencial uso de esta vulnerabilidad para engañar a los desarrolladores y hacerles ejecutar código malicioso.

Riesgo de explotación

Según el investigador de seguridad Andrey Polkovnichenko, «es una amenaza real, ya que los desarrolladores pueden ser engañados para que descarguen paquetes que parecen inocentes, pero cuyas dependencias ocultas son en realidad maliciosas».

Origen de la vulnerabilidad

La «confusión de manifiestos» fue documentada por primera vez en julio de 2023, cuando el investigador Darcy Clarke descubrió que las discrepancias entre los metadatos del manifiesto y del paquete podrían ser utilizadas como arma para ataques a la cadena de suministro de software.

Mecanismo de vulnerabilidad

El problema surge debido a que el registro npm no valida si el archivo de manifiesto contenido en el tarball (package.json) coincide con los datos del manifiesto proporcionados al servidor npm durante el proceso de publicación.

Como resultado, un actor malicioso podría aprovechar esta falta de verificación cruzada para proporcionar un manifiesto diferente que contenga dependencias ocultas que se procesen durante la instalación del paquete, permitiendo así instalar sigilosamente dependencias maliciosas en el sistema del desarrollador.

Impacto y casos específicos

La compañía identificó más de 800 paquetes donde existía una discrepancia entre el manifiesto en el registro npm y el archivo package.json dentro del tarball. De estos, 18 se consideran explotables mediante la técnica de «confusión de manifiestos».

Un paquete destacado en este contexto es yatai-web-ui, que está diseñado para enviar una solicitud HTTP a un servidor con información sobre la dirección IP de la máquina donde se instaló el paquete.

Estado actual del problema

Los hallazgos muestran que los actores maliciosos nunca han utilizado este vector de ataque. Sin embargo, es fundamental que los desarrolladores tomen medidas para garantizar que los paquetes estén libres de comportamientos sospechosos.

Polkovnichenko señaló: «Dado que npm no resolvió este problema, confiar en los paquetes solo por su apariencia en el sitio web de npm puede ser arriesgado».

Polkovnichenko también destacó la importancia de introducir procedimientos que verifiquen que todos los paquetes que ingresan a una organización o que utilizan sus equipos de desarrollo son seguros y confiables. En el caso específico de «confusión de manifiestos», se requiere que cada paquete sea analizado para detectar posibles dependencias ocultas.