Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Widely Used JavaScript Library Had a Backdoor to Steal Bitcoin

DZone's Guide to

Widely Used JavaScript Library Had a Backdoor to Steal Bitcoin

Malicious code designed to steal Bitcoin was hidden in an npm package for weeks. Once it was discovered, it took developers a week to even figure out what it did.

· Web Dev Zone ·
Free Resource

Deploy code to production now. Release to users when ready. Learn how to separate code deployment from user-facing feature releases with LaunchDarkly.

Multiple tech news sites have reported that  event-stream , a popular JavaScript library with almost two million weekly downloads, contained malicious code for several weeks. It was first reported in a GitHub post last week, but developers were only able to decipher the purpose of the code yesterday. The code targeted users of the cryptocurrency wallet Copay, and was designed to steal Bitcoin and Bitcoin Cash.

GitHub user right9ctrl injected the malicious code in a package called flatmap-stream after offering to help maintain the library, according to a post on the Snyk security blog. Handing off control to other users happens frequently in open source communities, as the original authors and maintainers move on to other projects. Adding libraries as dependencies is also common in open source, although the  event-stream npm package hadn't been substantially updated for about two years prior to September 2018, when flatmap-stream was first added. According to Ars Technica, the next phase took place on October 5, when malicious code was implemented to transfer the balances of Copay wallets to a server in Kuala Lumpur. 

Copay published a blog post on Monday warning users of versions 5.0.2 through 5.1.0 not to open the app until they had installed version 5.2.0, which includes a security update to protect against the npm package vulnerability.

ZDNet reports that the malicious event-stream version 3.3.6 has been taken down from npmjs.com repository, and also advised project maintainers to update their dependency trees to the latest version available, 4.0.1. 

In early January, David Gilbertson wrote a post on Hackernoon theorizing how a similar situation might unfold: "I'm Harvesting Credit Card Numbers and Passwords From Your Site. Here's How."

Open-source security vulnerabilities that target end users are becoming more common. The volunteer-run nature of the libraries, combined with their extreme popularity, creates opportunities for hackers to implement malicious updates under the radar.

Last month, Ars Technica reported on two such attacks. VestaCP servers were compromised to allow end users to download a malicious installer. Also, "Colourama," a doppelganger of the popular Colorama package in the PyPI repository, was found to be monitoring users' clipboards for signs they were about to make a cryptocurrency payment. Any transfers were diverted directly into the wallet of an attacker.

Deploy code to production now. Release to users when ready. Learn how to separate code deployment from user-facing feature releases with LaunchDarkly.

Topics:
javascript library ,npm package ,security vulnerabilities ,web dev ,event-stream ,backdoor ,nodejs

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}