Op 8 september werd het NPM-ecosysteem getroffen door een grote supply chain-aanval, waarbij verschillende veelgebruikte JavaScript-libraries werden gecompromitteerd. De inbreuk kwam aan het licht toen Charles Guillemet, Chief Technology Officer van Ledger, waarschuwde dat het Node Package Manager-account van een vertrouwde developer was gekaapt. De eerste schattingen gingen uit van meer dan een miljard downloads, maar uit verdere analyse bleek dat de gecompromitteerde packages in werkelijkheid goed zijn voor meer dan 2.6 miljard wekelijkse downloads.

Supply Chain Attack Exposes Over 2 Billion
Supply Chain Attack Exposes Over 2 Billion
De aanval was gericht op het account van een developer genaamd "qix", die verschillende populaire JavaScript-libraries onderhoudt, waaronder chalk, strip-ansi, color-convert en debug. Deze libraries worden in talloze projecten gebruikt, zowel in server-side als front-end omgevingen. Aanvallers kregen toegang via een valse support-e-mail en pushten kwaadaardige updates naar ongeveer 18 packages. Door geautomatiseerde dependency-installaties kon de malware zich binnen enkele uren razendsnel verspreiden.
Guillemet legde uit dat de kwaadaardige code tijdens transacties stilletjes cryptocurrency-walletadressen verving. Gebruikers die afhankelijk zijn van software-wallets liepen het risico geld te verliezen als ze transacties goedkeurden zonder het gewijzigde ontvangstadres op te merken.
Malware Crypto Clipper en MetaMask
Security-onderzoekers classificeerden de malware als een "crypto clipper". Deze vervangt walletadressen in verschillende stadia van een transactie. Wanneer er geen wallet wordt gedetecteerd, wijzigt de malware uitgaande data binnen gedecentraliseerde applicaties door in te haken op browserfuncties zoals fetch en XMLHttpRequest, waarbij adressen in applicatiedata worden gescand en aangepast.
Als een wallet-extensie zoals MetaMask aanwezig is, onderschept de malware de transactie vóór het ondertekenen. Het wijzigt het walletadres in het geheugen, zodat het frauduleuze adres verschijnt wanneer de gebruiker de transactie controleert. De malware gebruikt het Levenshtein-algoritme om adressen te genereren die sterk op het origineel lijken, waardoor wijzigingen moeilijker te spotten zijn.

Supply Chain Attack Exposes Over 2 Billion
Eerste tekenen van de aanval
Developers merkten de aanval voor het eerst op toen build-systemen een onverwachte foutmelding gaven. Inspectie van een dependency genaamd error-ex onthulde geobfusceerde code met een verdachte functie genaamd checkethereumw, wat duidt op het targeten van Ethereum-wallets. Analisten bevestigden dat de malware verwijzingen bevatte naar walletadressen op verschillende blockchains, waaronder Bitcoin, Ethereum, Solana, Tron, Litecoin en Bitcoin Cash.
De getroffen packages behoren tot de meest gebruikte in het JavaScript-ecosysteem. Chalk ontvangt meer dan 300 miljoen wekelijkse downloads, debug meer dan 350 miljoen en strip-ansi meer dan 260 miljoen. Gecombineerd worden de gecompromitteerde libraries meer dan 2.6 miljard keer per week gedownload, wat de impact op de developer-community aantoont.
Hardware vs Software Wallets
Veel van de geïnfecteerde libraries zijn niet direct gekoppeld aan cryptocurrency-projecten, maar hun integratie in dependency-chains betekent dat zelfs niet-gerelateerde applicaties blootgesteld kunnen zijn. Projecten die interageren met cryptocurrency-wallets en gedecentraliseerde applicaties lopen het hoogste risico.
Guillemet merkte op dat gebruikers van hardware-wallets met clear-signing-functies veilig blijven, omdat deze apparaten verificatie van elke transactie vóór goedkeuring mogelijk maken. Gebruikers van software-wallets lopen meer risico en moeten uiterst voorzichtig zijn totdat dependencies volledig zijn gecontroleerd en beveiligd.
De aanvaller vinden en gestolen fondsen
De cryptocurrency-adressen van de aanvaller zijn geïdentificeerd en worden actief gemonitord via publieke blockchain-transparantie. Een primair Ethereum-adres dat aan de operatie is gekoppeld, is 0xFc4a4858bafef54D1b1d7697bfb5c52F4c166976, samen met verschillende back-upadressen. Op het moment van rapporteren waren de gestolen fondsen nog niet verplaatst. Deze monitoring maakt voortdurende analyse mogelijk, hoewel de volledige omvang van de gestolen assets onduidelijk blijft.

Supply Chain Attack Exposes Over 2 Billion
JavaScript en de rol van de community
De JavaScript- en web3-communities kwamen snel in actie om het incident in te dammen. Kwaadaardige versies van de gecompromitteerde packages zijn grotendeels uit het register verwijderd, maar er blijven risico's voor projecten die mogelijk nog vertrouwen op verouderde versies binnen hun lockfiles. Developers worden opgeroepen hun dependencies te auditen, veilige versies vast te leggen en schone builds opnieuw te installeren om verdere blootstelling te voorkomen.
Security-professionals raden developers aan om inloggegevens te roteren, tweefactorauthenticatie op accounts zoals NPM en GitHub af te dwingen en deterministische installatiemethoden zoals npm ci te gebruiken om strikte versiecontrole te behouden. Gebruikers moeten alle cryptocurrency-transacties zorgvuldig verifiëren, vooral bij het gebruik van software-wallets.
Conclusie
Dit incident behoort tot de meest uitgebreide inbreuken die het NPM-ecosysteem hebben getroffen. Hoewel de reactie van de community relatief snel was, legt de aanval de kwetsbaarheid van moderne software-supply chains bloot en de risico's die ontstaan door de wijdverbreide afhankelijkheid van open-source componenten.
Zoals Guillemet benadrukte, blijft het controleren van elke transactie vóór het ondertekenen essentieel. De inbreuk toont aan dat zelfs kleine libraries die diep in de applicatie-infrastructuur zijn ingebed, belangrijke aanvalsvectoren kunnen worden wanneer ze worden gecompromitteerd. Voor zowel developers als gebruikers is voortdurende waakzaamheid nu een cruciaal onderdeel van het handhaven van de veiligheid in de web3- en softwareontwikkeling-ecosystemen.



