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

September 2025 NPM Supply Chain Breach Drains Crypto Wallets Via Address Swap Malware

The JavaScript ecosystem suffered one of its most devastating supply chain attacks in September 2025, as threat actors compromised at least 27 NPM packages through a sophisticated phishing campaign, injecting cryptocurrency-stealing malware that targeted wallets across six blockchains. The breach, first detected on September 8, sent shockwaves through the developer community as the full scope of the attack became clear over the following days.

The Exploit Mechanics

The attack began with a meticulously crafted phishing campaign. Attackers registered the domain npmjs.help on September 4, 2025, creating a near-perfect impersonation of NPM’s official infrastructure. Phishing emails were dispatched to multiple high-profile package maintainers on September 8, claiming urgent two-factor authentication updates were required by September 10.

Josh Junon, a maintainer of critical JavaScript infrastructure packages, recounted the attack vector: the email appeared to come from [email protected] and looked legitimate at first glance. Operating on mobile during a stressful morning, the maintainer clicked the phishing link rather than navigating directly to the NPM website.

Once inside, the attackers published malicious versions of the compromised packages. The injected malware demonstrated advanced obfuscation techniques using hexadecimal encoding and complex function structures. The code operated exclusively in browser environments, targeting cryptocurrency transactions through three primary mechanisms: API hooking that intercepted window.ethereum, fetch, and XMLHttpRequest calls; address replacement using Levenshtein distance algorithms to generate visually similar wallet addresses; and multi-chain support targeting Ethereum, Bitcoin, Solana, Tron, Litecoin, and Bitcoin Cash. The malware maintained over 280 hardcoded attacker addresses for redundancy.

Affected Systems

The scale of the compromise was staggering. At least 27 packages were confirmed compromised, affecting billions of weekly downloads across the JavaScript ecosystem. The affected packages included widely-used libraries such as chalk, ansi-regex, supports-color, strip-ansi, debug, duckdb, and prebid.js.

Fifteen packages required upgrades to newly published fixed versions, while twelve packages needed to be reverted to previous safe versions. The browser-only execution of the malware meant server-side Node.js applications were not directly affected, though the potential for future server-targeting variants remains a critical concern for infrastructure teams.

With Bitcoin trading at approximately $115,500 and Ethereum near $4,460 on September 11, the financial stakes of any successful wallet compromise were substantial. Even a small percentage of users executing transactions through compromised browsers could result in millions of dollars in stolen funds.

The Mitigation Strategy

NPM’s security team began removing malicious packages immediately upon detection, with the initial wave of compromised versions unpublished from the registry within hours. The incident response escalated through September 9 to 11, as security researchers continued discovering additional affected libraries. CVE assignments began for the most critical packages, and maintainers worked around the clock to regain control and publish fixes.

Organizations were advised to take immediate action: identify all affected packages using vulnerability scanning tools, update the fifteen packages with available fixes or revert the twelve packages to their last known safe versions, clear all NPM caches with npm cache clean --force, and verify package integrity against known-good checksums.

Lessons Learned

This attack underscores several critical vulnerabilities in the open-source software supply chain. First, the reliance on email-based authentication for package maintainers creates a single point of failure. Second, the sheer download volume of popular packages means even brief exposure windows can affect millions of users. Third, the targeting of cryptocurrency transactions through browser-based malware represents an evolution in financially-motivated supply chain attacks.

The attack also highlights the tension between developer convenience and security. Maintainers managing dozens of packages under time pressure are precisely the targets most susceptible to well-crafted phishing campaigns. Organizations must implement automated dependency scanning and pin package versions to known-good releases rather than using floating version specifiers.

User Action Required

If you used any affected NPM packages between September 8 and September 11, 2025, immediately audit your dependency tree, update all packages to their latest patched versions, and review any cryptocurrency transactions executed during this window for signs of address tampering. Enable hardware wallet verification for all high-value transfers, and consider using dedicated browser profiles for cryptocurrency operations that exclude development tooling.

Disclaimer: This article is for informational purposes only and does not constitute financial or security advice. Always consult with qualified security professionals regarding your specific infrastructure needs.

🌱 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.

11 thoughts on “September 2025 NPM Supply Chain Breach Drains Crypto Wallets Via Address Swap Malware”

    1. real yield protocols are great until a compromised npm package swaps your withdrawal address. the attack surface shifted not disappeared

    1. TVL recovery is real but this was a supply chain attack not a DeFi bug. completely different threat model

      1. lena is right that the threat model is different. defi insurance wont help you if your wallet signs a transaction to a swapped address from a compromised npm package

  1. 27 packages compromised through one phishing domain. the npm ecosystem needs signed package verification yesterday. every JS project is one maintainer phishing click away from disaster

  2. 280 hardcoded attacker addresses across 6 chains and the malware was live for days. npmjs.help registered sep 4, attack sep 8, that 4 day gap shouldve been caught

    1. 4 day gap between domain registration and attack is actually fast for threat actors. the phishing emails went out the same morning as registration in some cases

Leave a Comment

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

BTC$64,632.00+1.1%ETH$1,744.86+1.3%SOL$73.46-0.6%BNB$596.24+1.2%XRP$1.14+0.2%ADA$0.1598-0.8%DOGE$0.0833+0.2%DOT$0.9553-0.4%AVAX$6.32+1.3%LINK$7.96+0.7%UNI$3.04+0.6%ATOM$1.80+1.9%LTC$44.93-0.4%ARB$0.0849+1.8%NEAR$2.13-1.3%FIL$0.8035+0.2%SUI$0.7232+2.3%BTC$64,632.00+1.1%ETH$1,744.86+1.3%SOL$73.46-0.6%BNB$596.24+1.2%XRP$1.14+0.2%ADA$0.1598-0.8%DOGE$0.0833+0.2%DOT$0.9553-0.4%AVAX$6.32+1.3%LINK$7.96+0.7%UNI$3.04+0.6%ATOM$1.80+1.9%LTC$44.93-0.4%ARB$0.0849+1.8%NEAR$2.13-1.3%FIL$0.8035+0.2%SUI$0.7232+2.3%
Scroll to Top