Skip to main content

Rogue Developer Infects Widely Used NodeJS Module to Steal Bitcoins


nodejs-event-stream-module
A widely used third-party NodeJS module with nearly 2 million downloads a week was compromised after one of its open-source contributor gone rogue, who infected it with a malicious code that was programmed to steal funds stored in Bitcoin wallet apps.

The Node.js library in question is "Event-Stream," a toolkit that makes it easy for developers to create and work with streams, a collection of data in Node.js — just like arrays or strings.

The malicious code detected earlier this week was added to Event-Stream version 3.3.6, published on September 9 via NPM repository, and had since been downloaded by nearly 8 million application programmers.

Event-Stream module for Node.js was originally created by Dominic Tarr, who maintained the Event-Stream library for a long time, but handed over the development and maintenance of the project several months ago to an unknown programmer, called "right9ctrl."

Apparently, right9ctrl gained Dominic's trust by making some meaningful contributions to the project.

After gaining access to the library, the new rightful maintainer "Right9ctrl" released Event-Stream version 3.3.6, containing a new library, called Flatmap-Stream, as a dependency, which was specifically crafted for the purposes of this attack and includes the malicious code.

Since the flatmap-stream module was encrypted, the malicious code remained undetected for more than 2 months until Ayrton Sparling (FallingSnow), a computer science student at California State University, flagged the issue Tuesday on GitHub.

After analyzing the obfuscated code and encrypted payload, open source project manager NPM which hosted event-stream found that the malicious module has been designed to target people using BitPay's open-source bitcoin wallet app, Copay, a company that incorporated event-stream into its app.

The malicious code attempted to steal digital coins stored in the Dash Copay Bitcoin wallets—distributed through the Node Package Manager (NPM)—and transfer them to a server located in Kuala Lumpur.

Officials from NPM—the open source project manager that hosted event-stream code library—removed the backdoor from NPM's listing on Monday this week.

BitPay also published an advisory saying Copay versions 5.0.2 through 5.1.0 were affected by the malicious code and that users with these versions installed should avoid running or opening the app until they install Copay version 5.2.0.

"Users should assume that private keys on affected wallets may have been compromised, so they should move funds to new wallets (v5.2.0) immediately," BitPay says in the advisory.

"Users should first update their affected wallets (5.0.2-5.1.0) and then send all funds from affected wallets to a brand new wallet on version 5.2.0, using the Send Max feature to initiate transactions of all funds."

BitPay also says that its team continues to investigate this issue and the extent of the vulnerability to know whether the malicious code was ever exploited against Copay users.

BitPay assures its users that the BitPay app was not vulnerable to the malicious code.

Comments

Popular posts from this blog

Information Security Analyst Interview Questions

Top 12 Information Security Analyst Interview Questions & Answers 1) Explain what is the role of information security analyst? From small to large companies role of information security analyst includes Implementing security measures to protect computer systems, data and networks Keep himself up-to-date with on the latest intelligence which includes hackers techniques as well Preventing data loss and service interruptions Testing of data processing system and performing risk assessments Installing various security software like firewalls, data encryption and other security measures Recommending security enhancements and purchases Planning, testing and implementing network disaster plans Staff training on information and network security procedures 2) Mention what is data leakage? What are the factors that can cause data leakage? The separation or departing of IP from its intended place of storage is known as data leakage.  The factors that are respons...

Tr0ll 1.0 – Vulnhub CTF Challenge Walkthrough

  Tr0ll 1.0 is an intentionally vulnerable machine, which is more of a   CTF  like type than real world scenario. Nevertheless, this machine has its own difficulties and you can learn some new stuff from it. So, let’s start. Enumeration Phase Let’s first run  netdiscover  to find the IP of our machine. netdiscover -r 192.168.1.1/24 After that, we run our typical  nmap  scan to see the open ports in the machine. nmap -A -sS -Pn -vv [target] Great we see many interesting stuff here. First of all, there is an open  FTP  port and we can connect to it with  anonymous access .  Also there is an open  http  port, we will run a nikto scan for it. The  ssh  port will be valuable later. From the nikto scan we got an interesting  /secret/  folder. When we get inside, we can understand why the machine got this name. Nothing interesting here, as you can see. we got trolled Let’s connect ...

FartKnocker – Vulnhub CTF Challenge Walkthrough

Fart Knocker is a Boot2Root Challenge from TopHatSec Series and is available at  Vulnhub . This is a unique and interesting challenge that includes Packet Analysis and Port Knocking. In this walkthrough, I’ll be using Parrot Security OS but you can use any Linux distro you want. Start the Virtual machine and use Netdiscover to find its IP Address. Register this IP to your local DNS file “/etc/hosts”. sudo netdiscover -r [IP/subnet] sudo nano /etc/hosts Run a full port Nmap scan. There’s no port open except HTTP. Open this on your browser. Click on the link below, you’ll be prompted to download a file. This is a “pcap” file. when you open this file in Wireshark, you’ll see a knocking pattern on port no 7000, 8000, 9000, 7000, 8000. Apply TCP filter to see the pattern. Now, I’ll use a utility “knock” to knock these ports install Knockd sudo apt install knockd knock knock.local 7000 8000 9000 7000 8000 nmap -p- knock.local By running Nmap...