📈 Get daily crypto insights that make you smarter about your money

NPM Supply Chain Attack Hijacks 2.5 Billion Weekly Downloads in Crypto Wallet Heist

A devastating supply chain attack targeting some of the most widely used JavaScript packages has exposed critical vulnerabilities in the cryptocurrency ecosystem, with threat actors successfully poisoning 18 NPM packages collectively downloaded over 2.5 billion times per week. The September 2025 breach represents one of the largest supply chain compromises in the history of open-source software, and it specifically targets cryptocurrency users through sophisticated transaction-hijacking malware.

The Exploit Mechanics

The attack began with a carefully orchestrated phishing campaign. Threat actors sent emails from the address support[at]npmjs[dot]help, directing package maintainers to npmjs[.]help — a domain designed to mimic the legitimate npmjs.com website. The emails created urgency by claiming that accounts with outdated two-factor authentication credentials would be locked starting September 10, 2025.

While several community members identified the phishing attempt and reported the malicious domain, package maintainer Josh Junon, known online as Qix, fell victim to the deception. Once the attackers gained control of his NPM account, they injected malicious code into 18 packages under his maintenance. The affected packages include widely used libraries such as ansi-styles, chalk, debug, strip-ansi, color-convert, and supports-color — foundational tools present in nearly every JavaScript project.

The injected payload operates as a browser-based interceptor designed to hijack application APIs and network traffic. Security firm Aikido explains that the malware scans specifically for cryptocurrency-related transactions, replacing user-provided wallet addresses and payment destinations with attacker-controlled substitutes. The code uses string-matching logic to replace targets with look-alike values, making the alterations extremely difficult to detect visually.

Affected Systems

According to cybersecurity firm Wiz, the scope of potential exposure is enormous. If the malicious package versions were incorporated into frontend builds and shipped as web assets during the window they were available, the payload would execute in any browser loading affected websites. This means any website that deployed updates during the compromise window could have unknowingly served the crypto-stealing code to its users.

A DuckDB maintainer was also phished in the same campaign. Although the DuckDBLabs team blocked the attacker quickly, the Node.js distribution of DuckDB on the NPM registry was briefly injected with malware. The attack reached an estimated 10 percent of cloud environments before remediation began. Bitcoin traded at approximately $113,955 at the time of the attack, making even small transaction diversions potentially highly profitable for the attackers.

The Mitigation Strategy

Junon disclosed the attack immediately after being locked out of his account, reporting the intrusion to NPM. The registry began removing malicious packages within two hours, and the maintainer regained access several hours later. Organizations using affected packages were advised to audit their dependency trees, pin versions to known-safe releases, and review any frontend builds deployed during the exposure window.

Security teams should implement lockfiles and integrity verification in their CI/CD pipelines. Subresource integrity checks and automated dependency scanning tools can detect tampered packages before they reach production environments. Ethereum, trading near $4,349 at the time of the incident, highlights the high-value target that cryptocurrency transactions represent for supply chain attackers.

Lessons Learned

This incident underscores the fragility of the open-source supply chain that underpins modern web development. A single compromised maintainer account granted attackers access to packages used by billions of projects worldwide. The phishing technique was straightforward yet effective — exploiting trust in official-looking communications during a plausible security update scenario.

For cryptocurrency projects specifically, the attack demonstrates that wallet security extends far beyond private key management. The entire software supply chain, from development dependencies to deployment pipelines, must be treated as part of the security perimeter. Projects should implement multi-party approval for dependency updates and maintain comprehensive audit trails.

User Action Required

Developers and organizations should immediately verify their dependency trees against the list of 18 compromised packages. Any builds deployed between September 8 and September 11, 2025 should be treated as potentially compromised. Users of cryptocurrency platforms and wallets should verify transaction details using multiple independent methods and monitor their wallets for unauthorized activity.

Disclaimer: This article is for informational purposes only and does not constitute financial or security advice. Always consult with qualified professionals for security decisions.

🌱 FOR BUSINESSES BitcoinsNews.com
Reach 100K+ Crypto Readers
Sponsored content, press releases, banner ads, and newsletter placements. Put your brand in front of Bitcoin's most engaged audience.

26 thoughts on “NPM Supply Chain Attack Hijacks 2.5 Billion Weekly Downloads in Crypto Wallet Heist”

  1. 2.5 billion weekly downloads and one maintainer falling for a phishing email was all it took. the npm model where a single human controls a package used by half the internet is genuinely terrifying

  2. Qix maintaining packages with billions of downloads and zero institutional backup. open source sustainability isnt just about funding, its about security continuity. npm should have taken over these packages years ago

  3. 18 packages and 2.5B weekly downloads. the entire JS ecosystem is a house of cards held up by unpaid maintainers with no security budget

  4. sig_pinning_gang_

    pkg_lock_ npm still doesnt enforce signed packages by default. pip added hash pinning years ago. the JavaScript ecosystem is running on vibes and maintainer goodwill

    1. 2.5 billion weekly downloads across 18 packages. chalk and ansi-styles are in literally every JS project. the blast radius is insane

      1. chalk alone is in half of all node modules on the planet. npmjs.help got one maintainer and the blast radius touched practically every JS project on earth

      2. left_pad_survivor

        chalk_pwned chalk and ansi-styles are transitive deps in basically every react app. this made SolarWinds look small. 2.5B weekly downloads is a nuclear blast radius

      3. chalk_pwned chalk is a transitive dep in literally every react app on earth. 2.5B downloads means the blast radius isnt just crypto wallets, its the entire JS ecosystem. SolarWinds energy

    1. npmjs.help as a phishing domain and nobody flagged it until after the maintainer handed over credentials. supply chain security starts with human factor

      1. the phishing domain used npmjs.help and nobody thought to monitor lookalike domains for the most critical package registry on the internet. in hindsight thats indefensible

  5. npmjs.help with a .help TLD should have been auto-flagged by every package mainters email client. basic DKIM and domain checking would have caught this

    1. pkg_lock_dev the .help TLD is such an obvious red flag. npmjs.help vs npmjs.com. DKIM and domain monitoring should have caught this before a single maintainer clicked the link

  6. Josh Junon getting phished as the maintainer of chalk is devastating. one guy maintaining critical infrastructure for the entire JS ecosystem with no 2FA on his npm account. single points of failure everywhere

    1. Devanshi R. one maintainer for chalk with no 2FA is the real story here. billions of downloads depending on a single persons gmail account security

      1. maintainer_burden_

        lea_v one person maintaining chalk with no 2FA and 2.5B weekly downloads. the entire npm ecosystem runs on unpaid volunteer labor and zero security requirements. this was inevitable

        1. maintainer_burden_ unpaid volunteer labor for critical infrastructure. this wasnt inevitable it was ignored. npm Inc had years to fix 2FA requirements and chose growth over safety

  7. npmjs.help using a .help TLD to phish package maintainers. domain monitoring for critical registries should have been solved a decade ago

  8. npmjs.help TLD should have been flagged by every email provider before a single maintainer clicked. basic DKIM checking would have killed this attack at step one

    1. Yelena F. the real problem is one person maintaining chalk with no 2FA on 2.5B weekly downloads. npm runs on unpaid volunteer labor and zero security requirements

Leave a Comment

Your email address will not be published. Required fields are marked *

BTC$64,010.00-1.7%ETH$1,876.97-2.3%SOL$76.19-1.2%BNB$600.09-1.2%XRP$1.02-2.1%ADA$0.1937-1.9%DOGE$0.0698-0.9%DOT$0.8039-0.4%AVAX$6.46-1.6%LINK$8.27-0.5%UNI$3.95-3.0%ATOM$1.41+2.0%LTC$45.07-2.3%ARB$0.0805+1.9%NEAR$1.60-1.7%FIL$0.7049-1.0%SUI$0.6920-0.7%BTC$64,010.00-1.7%ETH$1,876.97-2.3%SOL$76.19-1.2%BNB$600.09-1.2%XRP$1.02-2.1%ADA$0.1937-1.9%DOGE$0.0698-0.9%DOT$0.8039-0.4%AVAX$6.46-1.6%LINK$8.27-0.5%UNI$3.95-3.0%ATOM$1.41+2.0%LTC$45.07-2.3%ARB$0.0805+1.9%NEAR$1.60-1.7%FIL$0.7049-1.0%SUI$0.6920-0.7%
Scroll to Top