
Los investigadores de ciberseguridad descubrieron un conjunto de paquetes maliciosos en los repositorios npm y Python Package Index (PyPI) vinculados a una campaña falsa de reclutamiento organizada por el Grupo Lazarus, vinculado a Corea del Norte.
Esta campaña coordinada tiene el nombre en código graphalgo, en honor al primer paquete publicado en el registro npm. Está calificado como activo desde mayo de 2025.
«Se está contactando a los desarrolladores a través de ofertas de trabajo en plataformas sociales como LinkedIn y Facebook, o en foros como Reddit», dijo en el informe Carlo Zanchi, investigador de ReversingLabs. «Esta campaña incluye historias bien elaboradas sobre empresas involucradas en blockchain y intercambios de cifrado».
En particular, uno de los paquetes npm identificados, bigmathutils, obtuvo más de 10.000 descargas después de que se publicara la versión inicial no maliciosa antes de que se lanzara una segunda versión con una carga útil maliciosa. Los nombres de los paquetes se enumeran a continuación:
npm –
graphalgographorithmgraphstructgraphlibcorenetstructgraphnetworkxterminalcolor256graphkitxgraphchaingraphfluxgraphorbitgraphnetgraphhubterminal-kleurgraphrix bignumx bignumberx bignumex bigmathex bigmathlib bigmathutilsgraphlink bigmathixgraphflowx
Pipi –
graphalgographexgraphlibxgraphdictgraphfluxgraphnodegraphsync bigpyx bignum bigmathex bigmathix bigmathutils
Como muchas campañas centradas en el trabajo llevadas a cabo por actores de amenazas norcoreanos, la cadena de ataque comienza con el establecimiento de una empresa falsa como Veltrix Capital en el espacio de comercio de criptomonedas y blockchain, y luego establece el espacio digital necesario para crear la ilusión de legitimidad.
Esto incluye registrar un dominio y crear una organización GitHub asociada para alojar múltiples repositorios para su uso en evaluaciones de codificación. Se ha descubierto que estos repositorios contienen proyectos basados en Python y JavaScript.
«Nuestro examen de estos repositorios no reveló ninguna funcionalidad maliciosa obvia», dijo Zinke. «Esto se debe a que la funcionalidad maliciosa no se introdujo directamente a través del repositorio de Job Interview, sino indirectamente a través de dependencias alojadas en los repositorios de paquetes de código abierto npm y PyPI».
La idea detrás de la configuración de estos repositorios es engañar a los candidatos que postulan a ofertas de trabajo en grupos de Reddit o Facebook para que ejecuten el proyecto en sus máquinas, instalando efectivamente dependencias maliciosas y causando una infección. En algunos casos, las víctimas son contactadas directamente por reclutadores aparentemente legítimos en LinkedIn.
En última instancia, el paquete sirve como conducto para implementar un troyano de acceso remoto (RAT) que periódicamente recupera y ejecuta comandos desde un servidor externo. Admite varios comandos para recopilar información del sistema, enumerar archivos y directorios, enumerar procesos en ejecución, crear carpetas, cambiar el nombre de archivos, eliminar archivos y cargar/descargar archivos.
Curiosamente, las comunicaciones de comando y control (C2) están protegidas por un mecanismo basado en tokens que garantiza que solo se acepten solicitudes con tokens válidos. Este enfoque se observó anteriormente en una campaña de 2023 asociada con un grupo de piratería norcoreano llamado Jade Sleet, también conocido como TraderTraitor o UNC4899.

Básicamente funciona así: el paquete envía datos del sistema al servidor C2 como parte del paso de registro y el servidor C2 responde con un token. Este token se envía de vuelta al servidor C2 en solicitudes posteriores para verificar que proviene de un sistema infectado ya registrado.
«El enfoque basado en tokens es similar en ambos casos (…) y, hasta donde sabemos, no ha sido utilizado por otros atacantes en malware alojado en repositorios de paquetes públicos», dijo Zanki a Hacker News en ese momento.
Nuestros hallazgos indican que los actores de amenazas patrocinados por el estado de Corea del Norte continúan contaminando el ecosistema de código abierto con paquetes maliciosos con el fin de robar datos confidenciales y robo financiero, como lo demuestran las comprobaciones del RAT para determinar si una máquina tiene instalada la extensión del navegador MetaMask.
«La evidencia sugiere que se trata de una campaña muy sofisticada», dijo ReversingLabs. «Su modularidad, su naturaleza duradera, su perseverancia en generar confianza a través de varios elementos de la campaña y la complejidad encriptada y de múltiples capas del malware apuntan a atacantes patrocinados por el estado».
Se encontraron más paquetes npm maliciosos
Esta divulgación se produce después de que JFrog descubriera un sofisticado paquete npm malicioso llamado ‘duer-js’ publicado por un usuario llamado ‘luizaearlyx’. Esta biblioteca afirma ser una utilidad que «hace que las ventanas de la consola sean más fáciles de leer», pero oculta un ladrón de información de Windows llamado Bada Stealer.
Puede recopilar tokens de Discord, contraseñas, cookies, datos de autocompletar de los navegadores Google Chrome, Microsoft Edge, Brave, Opera, Yandex, detalles de billeteras de criptomonedas e información del sistema. Luego, los datos se extraen al webhook de Discord y al servicio de almacenamiento de archivos Gofile como copia de seguridad.
«El paquete malicioso no sólo roba información del host infectado, sino que también descarga una carga útil secundaria», afirmó el investigador de seguridad Guy Korolewski. «Esta carga útil está diseñada para ejecutarse al iniciar la aplicación de escritorio Discord que se actualiza automáticamente y roba directamente información como los métodos de pago utilizados por los usuarios».
Esto también coincide con el descubrimiento de otra campaña de malware que utiliza npm como arma para extorsionar a los desarrolladores mediante pagos en criptomonedas durante la instalación del paquete utilizando el comando “npm install”. Esta campaña se registró por primera vez el 4 de febrero de 2026 y OpenSourceMalware la llama XPACK ATTACK.
El flujo de paquete malicioso duer-js secuestra el entorno Electron de Discord
Todos los nombres de los paquetes fueron cargados por un usuario llamado ‘dev.chandra_bose’ y se enumeran a continuación.
xpack-por-usuario xpack-por-dispositivo xpack-sui xpack-suscripción xpack-arc-gateway xpack-video-envío prueba-npm-estilo xpack-suscripción-prueba paquete-de prueba-xdsfdsfsc
«A diferencia del malware tradicional que roba credenciales o ejecuta un shell inverso, este ataque explota de forma innovadora el código de estado HTTP 402 ‘Pago requerido’ para construir un muro de pagos aparentemente legítimos», dijo el investigador de seguridad Paul McCarty. «Este ataque bloquea la instalación hasta que la víctima paga 0,1 USDC/ETH en la billetera del atacante, mientras recopila los nombres de usuario de GitHub y las huellas digitales del dispositivo».
«Si se niega a pagar, sólo perderá más de cinco minutos de tiempo de desarrollo, la instalación fallará y es posible que ni siquiera se dé cuenta de que ha encontrado malware en lo que parecía ser un muro de pago legítimo para acceder a los paquetes».
Source link
