Investigadores de ciberseguridad han identificado una nueva campaña a gran escala contra la cadena de suministro de software open source, centrada en el ecosistema npm y en desarrolladores de Web3. El paquete malicioso @validate-sdk/v2, presentado como un SDK para hashing y validación, ha sido utilizado para robar secretos, credenciales de acceso y claves de criptomonedas. Esta actividad se atribuye al grupo norcoreano Famous Chollima (también conocido como Shifty Corsair), relacionado con las operaciones Contagious Interview y fraudes con falsos “trabajadores IT remotos”.
Paquetes maliciosos en npm y robo de credenciales en proyectos Web3
En apariencia, @validate-sdk/v2 funciona como una biblioteca utilitaria para hashing, codificación y generación de números aleatorios. Sin embargo, su función oculta es la recolección y exfiltración de información sensible desde el entorno comprometido, incluyendo variables de entorno, configuraciones de despliegue y datos de criptomonedas. El código muestra patrones que sugieren el uso de IA generativa, técnica que facilita camuflar malware dentro de proyectos que parecen legítimos y bien estructurados.
El riesgo se incrementó al integrarse este SDK malicioso como dependencia en proyectos del ecosistema Solana. A través del paquete @solana-launchpad/sdk, el código malicioso alcanzó el proyecto openpaw-graveyard, un “agente de IA autónomo” diseñado para crear identidades on-chain con Tapestry Protocol, operar con Bankr y comunicarse con otros agentes en Moltbook. Al actualizar dependencias, el agente ejecutaba el código malicioso, lo que derivaba en compromiso de monederos y robo de fondos de los usuarios.
Cadena de dependencias multinivel y técnicas de evasión en npm
La campaña, bautizada PromptMink, se apoya en una arquitectura de dependencias en varios niveles. Los paquetes de primer nivel en npm se presentan como librerías inofensivas de lógica cripto y se apoyan en dependencias muy populares con millones de descargas, como axios o bn.js. Entre decenas de módulos legítimos se insertan discretamente un pequeño número de paquetes de segundo nivel, donde reside el código malicioso.
Cuando uno de estos paquetes de segundo nivel es detectado y eliminado del registro oficial, los atacantes lo reemplazan rápidamente por una variante casi idéntica, dificultando la mitigación sostenida. Además, emplean typosquatting (nombres y descripciones casi iguales a librerías conocidas) y sobrescritura de funciones, publicando supuestas “implementaciones alternativas” de APIs populares que incluyen funciones maliciosas embebidas.
Evolución técnica de PromptMink: de JavaScript ofuscado a módulos nativos en Rust
Las primeras trazas de la campaña se remontan a septiembre de 2025 con el paquete @hash-validator/v2. La carga inicial era un infostealer en JavaScript, fuertemente ofuscado, que escaneaba recursivamente el árbol de directorios en busca de archivos .env y .json, enviándolos a un dominio controlado por los atacantes alojado en Vercel, infraestructura ya asociada a Famous Chollima en campañas previas.
Posteriormente, los operadores migraron a un modelo Node.js Single Executable Application (SEA), empaquetando la carga en un único ejecutable. Aunque esto facilitaba la distribución, el binario creció de unos 5,1 KB a alrededor de 85 MB, aumentando su visibilidad y la probabilidad de detección. Como respuesta, los atacantes adoptaron NAPI-RS y Rust para desarrollar módulos nativos precompilados, más compactos y multiplataforma (Windows, Linux, macOS), capaces de instalar backdoors SSH y extraer repositorios completos con código fuente e información de propiedad intelectual.
Ingeniería social: falsas ofertas de trabajo, GitHub y PyPI como armas
PromptMink se integra en una operación más amplia conocida como Contagious Interview / Contagious Trader / graphalgo, centrada en desarrolladores de Web3 y blockchain. Los objetivos suelen ser profesionales en búsqueda activa de empleo. Los atacantes crean una red de empresas ficticias con perfiles convincentes en GitHub, LinkedIn y X, e incluso llegan a registrar entidades legales, como la citada Blocmerce LLC en Florida.
A las víctimas se les propone realizar una prueba técnica: descargar un proyecto desde GitHub supuestamente vinculado al proceso de entrevista. Dentro de ese proyecto se oculta una dependencia a un paquete malicioso en npm o PyPI, o a un artefacto de release en GitHub. Esta dependencia se camufla en lo profundo del árbol de dependencias transitivas; el campo resolved de package-lock.json apunta a un repositorio controlado por los atacantes en lugar del registro oficial. La fase final suele ser la instalación de un RAT (Remote Access Trojan) con capacidad para inventariar el sistema, listar procesos, subir y descargar archivos y tomar control remoto del equipo del desarrollador.
OtterCookie, compromisos de paquetes populares y conexión con BlueNoroff
En paralelo se han observado ataques relacionados mediante el paquete express-session-js, que descarga una segunda etapa formada por un RAT ofuscado y un infostealer. Este emplea paquetes legítimos como socket.io-client (para el canal de mando y control), screenshot-desktop, sharp y clipboardy, funcionalidades alineadas con el conocido malware OtterCookie. Una novedad es la inclusión de @nut-tree-fork/nut-js, que permite el control remoto del ratón y del teclado, ofreciendo a los atacantes un dominio interactivo casi total sobre las máquinas comprometidas.
Otro clúster norcoreano, identificado como UNC1069, se ha vinculado con la comprometida de paquetes ampliamente adoptados como axios. Tras ese incidente, los atacantes publicaron el módulo csec-crypto-utils, que ya no actuaba como RAT, sino como stealer especializado en sustraer claves de AWS, tokens de GitHub y configuraciones .npmrc, enviándolos a un servidor externo. Por características de infraestructura, esta actividad se asocia a BlueNoroff, subgrupo de la conocida Lazarus Group, con una larga trayectoria en ataques financieros contra el sector cripto.
Estos casos reflejan una madurez creciente de los actores estatales en ataques a la cadena de suministro de software: uso extensivo de infraestructuras legítimas (Vercel, GitHub, npm, PyPI), rotación rápida de paquetes maliciosos, adopción de Rust y módulos nativos, y explotación sistemática de desarrolladores mediante ingeniería social. Informes recientes sobre supply chain señalan incrementos de cientos de puntos porcentuales en este tipo de ataques en los últimos años, lo que confirma su papel como vector prioritario.
Ante este escenario, las organizaciones —especialmente las vinculadas a criptomonedas y Web3— deben tratar toda dependencia externa como código potencialmente no confiable. Es esencial reforzar el proceso de revisión de paquetes y mantenedores, desplegar soluciones de Software Composition Analysis (SCA), monitorizar la integridad de dependencias, evitar la instalación de artefactos desde releases no verificadas en GitHub, aislar entornos de compilación y prueba, aplicar una gestión estricta de secretos con rotación periódica de claves y formar a los equipos para detectar ofertas de trabajo y pruebas técnicas fraudulentas. Adoptar estas prácticas de forma temprana y sistemática reduce significativamente la superficie de ataque y dificulta que campañas como PromptMink conviertan la confianza en el open source en una puerta de entrada al robo de fondos y de propiedad intelectual.