Investigadores de ciberseguridad han descubierto tres paquetes npm maliciosos que están diseñados para entregar un malware previamente no documentado llamado NodoCordRAT.
Los nombres de los paquetes, todos los cuales fueron eliminados en noviembre de 2025, se enumeran a continuación. Fueron subidos por un legatario llamado “wenmoonx”.
“Los paquetes bitcoin-main-lib y bitcoin-lib-js ejecutan un script postinstall.cjs durante la instalación, que instala bip40, el paquete que contiene la carga maliciosa”, dijeron los investigadores de Zscaler ThreatLabz, Satyam Singh y Lakhan Parashar. “Esta carga útil final, denominada NodeCordRAT por ThreatLabz, es un troyano de camino remoto (RAT) con capacidades de robo de datos”.
NodeCordRAT recibe su nombre del uso de npm como vector de propagación y servidores Discord para comunicaciones de comando y control (C2). El malware está equipado para robar credenciales de Google Chrome, tokens API y frases iniciales de billeteras de criptomonedas como MetaMask.
Según la empresa de ciberseguridad, se estima que el actor de amenazas detrás de la campaña nombró los paquetes en honor a repositorios reales encontrados en el interior del esquema bitcoinjs oficial, como bitcoinjs-lib, bip32, bip38 y bip38.
Tanto “bitcoin-main-lib” como “bitcoin-lib-js” incluyen un archivo “package.json” que incluye “postinstall.cjs” como script posterior a la instalación, lo que lleva a la ejecución de “bip40” que contiene la carga útil NodeCordRAT.

El malware, encima de tomar las huellas digitales del host infectado para ocasionar un identificador único en los sistemas Windows, Linux y macOS, aprovecha un servidor Discord codificado para destapar un canal de comunicación encubierto para percibir instrucciones y ejecutarlas.
- !run, para ejecutar comandos de shell arbitrarios usando la función ejecutiva de Node.js
- !captura de pantalla, para tomar una captura de pantalla completa del escritorio y filtrar el archivo PNG al canal de Discord
- !sendfile, para cargar un archivo específico al canal de Discord
“Estos datos se extraen utilizando la API de Discord con un token codificado y se envían a un canal privado”, dijo Zscaler. “Los archivos robados se cargan como archivos adjuntos de mensajes a través del punto final REST de Discord /channels/{id}/messages”.


