La firma de seguridad Koi ha descubierto una campaña llamada PhantomRaven que inundó el registro de NPM con 126 paquetes maliciosos desde agosto. Estos paquetes, descargados más de 86.000 veces, explotan una función que permite dependencias no verificadas de sitios no confiables. A finales de octubre de 2025, alrededor de 80 de los paquetes seguían disponibles.
Los atacantes han explotado una vulnerabilidad en el repositorio de paquetes NPM, cargando más de 100 paquetes que roban credenciales desde agosto de 2025, según Koi, una firma de seguridad. La campaña, rastreada como PhantomRaven, utilizó la función de Dependencias Dinámicas Remotas (RDD) de NPM para distribuir 126 paquetes maliciosos. Este mecanismo permite que los paquetes descarguen y ejecuten automáticamente código de dominios no confiables, incluidos sitios HTTP sin cifrar, eludiendo las verificaciones de seguridad típicas.
"PhantomRaven demuestra cómo los atacantes sofisticados están mejorando en explotar puntos ciegos en las herramientas de seguridad tradicionales", escribió Oren Yomtov de Koi. "Las Dependencias Dinámicas Remotas no son visibles para el análisis estático." A diferencia de las dependencias estándar, que son visibles y provienen de la infraestructura confiable de NPM, RDD extrae código 'invisible' que los escáneres a menudo pasan por alto. Los paquetes maliciosos parecían tener '0 Dependencias', pero obtenían unas dañinas de URLs controladas por los atacantes, como http://packages.storeartifact.com/npm/unused-imports.
Estas dependencias se descargan frescas en cada instalación, sin caché ni versionado, lo que permite posibles ataques dirigidos. Los atacantes podrían personalizar las cargas útiles según las direcciones IP —sirviendo código benigno a investigadores mientras entregan malware a redes corporativas— o retrasar el comportamiento malicioso para evadir la detección. Los datos robados incluyen variables de entorno, credenciales de GitHub, Jenkins y NPM, además de detalles de entornos de integración y entrega continua. La exfiltración ocurre de manera redundante a través de solicitudes HTTP, JSON y Websockets.
Muchos nombres de paquetes imitan aquellos 'alucinados' por chatbots de IA, explotando la dependencia de los desarrolladores en tales herramientas para sugerencias de dependencias. Los representantes de NPM no respondieron a las consultas sobre esta práctica. Koi recomienda revisar su publicación para indicadores de compromiso y escanear sistemas afectados.