Onderzoekers hebben een langdurige npm supply chain-campagne ontleed waarbij malafide pakketten informatie-stealers en een remote access trojan (RAT) afleveren op gecompromitteerde systemen. De campagne kreeg de codenaam MALFEX npm-malware en is door CloudSEK en Checkmarx in detail beschreven.
Volgens de analyses lijkt het werk van één dreigingsactor. De aanvaller publiceerde vanaf augustus 2023 meerdere npm-packages; in totaal zijn er twaalf packages gezien, waarvan er acht als kwaadaardig zijn gelabeld. Gezamenlijk zijn de malafide packages 40.767 keer gedownload.
Wat is MALFEX npm-malware precies?
MALFEX npm-malware draait om een reeks npm-pakketten die als schakelketen fungeren: eerst wordt code opgetrokken, daarna volgt het ophalen en uitvoeren van zwaardere payloads. Het resultaat is dat slachtoffers—met name Windows—uiteindelijk besmet raken met een Overlord RAT en een Node.js stealer die gevoelige gegevens kan proberen te verzamelen.
De onderzoekers schetsen drie afzonderlijke aanvalsroutes, waardoor de campagne niet afhankelijk lijkt van één enkele installatieflow. In plaats daarvan gebruikt de malware meerdere “paden” om toch tot uitvoering te komen.
Drie besmettingsroutes naar Windows
De aanval is ontworpen om Windows-systemen te infecteren via drie pathways. Elk pathway-onderdeel correspondeert met een subset van npm-pakketten binnen de campagne.
Route 1: Overlord-loader via lifecycle hooks
Een set packages fungeren als loader voor Overlord, een open-source RAT die in Go is geschreven. Daarbij is een opvallend detail gemeld: Overlord gebruikt Solana-transacties om het command-and-control (C2)-adres te kunnen achterhalen.
De kwaadaardige code wordt vervolgens getriggerd via lifecycle hooks. Vanuit die hooks wordt een Windows-executable gedownload en gestart.
Route 2: keten naar een Node.js stealer (Discord, browsers, wallets)
Een tweede subset werkt als doorgeefluik richting movinlike, een Node.js stealer. Deze stealer richt zich op sporen en data gerelateerd aan toepassingen zoals Discord, browsers, Telegram en ook cryptocurrency wallets.
In deze route is de afhankelijkheidsketen essentieel: een pakket zoals img-to-native heeft cdn-img-fetch nodig om een Go-executable op te halen en uit te voeren. Die executable zet daarna de stealer-stap in gang.
Route 3: downloader en postinstall-payloads
Ten slotte is er een pathway die leunt op installatie-scripts. In function-flag draait onder meer een postinstall hook die een JavaScript-payload kan downloaden vanaf een remote server. Cruciaal is dat elke versie van het pakket een payload op een andere locatie kan serveren.
Checkmarx beschrijft dat in versie 1.7.3 het postinstall script example.js uitvoert, dat ASCII-art van de package-functie gebruikt met een “Bloody”-fontwaarde. Die fontwaarde blijkt vervolgens een verborgen routine te triggeren die node.exe ophaalt van een externe host en het wegschrijft naar %APPDATA% als node.exe. Daarna wordt het bestand gestart met het venster verborgen.
De acht kwaadaardige npm-packages
De onderzoekers noemen in totaal acht pakketten die als kwaadaardig zijn aangemerkt binnen de MALFEX npm-malware-campagne. Het gaat om:
- tlxbnhd
- tldriver
- mxdriver
- img-to-native
- native-runner
- function-flag (nog live)
- function-color (nog live)
- cdn-img-fetch (nog live)
Daarnaast is gerapporteerd dat sommige pakketten specifiek als Overlord-loader fungeren (tlxbnhd, tldriver en mxdriver). Andere pakketten vereisen weer een ander pakket om goed te kunnen doorlopen (zoals img-to-native dat cdn-img-fetch nodig heeft).
Waarom de downloads zo relevant zijn
De campagne heeft niet alleen “eenmalige” aandacht gekregen: de onderzoekers rapporteren een totaal van 40.767 downloads voor de geïdentificeerde kwaadaardige packages. Daarvan komt het merendeel uit één pakket.
Van die 40.767 downloads correleren er 37.419 met function-flag. Dat maakt function-flag de grootste driver van deze activiteit. Het pakket is voor het eerst gepubliceerd in juli 2024 en de nieuwste versie is uitgebracht op 4 augustus 2025.
Opvallende details in de projectbeschrijving
Naast code en install-scripts viel onderzoekers ook de beschrijving van een van de npm-projecten op. Daarin staat een welkomstbericht in Portugees, met een tekst die meldt dat het project is gemaakt door de “Malfex team” en dat de eigenaar “Murizada” heet.
Voor attributie gebruikt de analyse wel contextuele signalen (zoals taal en commit-gedrag), maar benadrukt men ook dat dit niet automatisch bewijst waar de campagne inhoudelijk op gericht is. Npm en Discord zijn immers wereldwijd.
Tactische overlaps in andere campagnes
De gebruikte Overlord RAT is eerder gezien in andere campagnes. Daarbij gaat het onder meer om aanvallen waarbij WordPress-kwetsbaarheden worden misbruikt (CVE-2026-63030 en CVE-2026-60137, ook aangeduid als wp2shell) en om een macOS-campagne met een nep Zoom-installer die wordt ingezet om de RAT te installeren.
De macOS-route vertoont daarnaast tactische overeenkomsten met een cluster dat wordt gelinkt aan North Korea en de naam UNK_DeadDrop draagt.
Herken signalen in je eigen supply chain
Als team ontwikkel je niet alleen met “packages”, maar met een keten van afhankelijkheden. Juist daarom is MALFEX npm-malware een goede reminder dat supply chain-risico’s niet ophouden bij code review in de repository.
Gebruik daarom ten minste deze praktische checks:
- Controleer dependencies die tijdens installatie lifecycle hooks en postinstall-scripts draaien.
- Let op onverwachte uitvoerbestanden zoals executables die via scripts naar gebruikersmappen worden geschreven.
- Beperk install-impact door waar mogelijk alleen vertrouwde registries en lockfiles te gebruiken.
- Monitor op downloads en netwerkgedrag tijdens build- en installmomenten.
Wanneer je dit koppelt aan een bredere beveiligingsstrategie rondom credential- en tooling-risico’s, wordt het eenvoudiger om snelle afwijkingen te detecteren. Overigens is in eerdere berichtgeving ook benadrukt dat securityteams steeds vaker te maken krijgen met sneller groeiende “credential layers”. Zie bijvoorbeeld waarom de credential layer sneller groeit dan security teams.
Gerelateerde context: agentische pentesting en governance
Supply chain aanvallen zijn niet alleen een kwestie van “patchen”, maar ook van bepalen hoe je misbruik in je omgeving test en valideert. In die context duiken vragen op rond governance en wat je wel of niet betrouwbaar kunt bewijzen met geautomatiseerde tests.
Als je bijvoorbeeld kijkt naar agentic pentesting, dan is het nuttig om te weten wat dergelijke aanpak helpt aantonen en waar de beperkingen zitten. Je leest daarover in agentic pentesting: wat het bewijst en wat niet.
Conclusie: neem npm-supply-chain serieus
MALFEX npm-malware laat zien hoe een langdurige npm-campagne met meerdere delivery routes kan leiden tot echte schade: RAT-toegang via Overlord, en een Node.js stealer die zich kan richten op data uit populaire diensten en omgevingen. Met 40.767 downloads en een grote rol voor function-flag is er bovendien duidelijk bewijs dat de pakketten niet “alleen maar” technisch interessant waren, maar ook daadwerkelijk zijn gebruikt.
Voor organisaties betekent dit: versterk je dependency-processen, controleer lifecycle/postinstall scripts en zorg dat je build- en installstromen zichtbaar zijn. Alleen zo voorkom je dat een ogenschijnlijk onschuldige npm-package uitgroeit tot een toegangspunt voor malware op Windows.
Bron: https://thehackernews.com/2026/10/eight-malicious-npm-packages-downloaded.html
