Een langdurige campagne binnen de NPM-softwareketen blijkt flink te hebben doorgezet. Volgens Checkmarx hebben de malafide pakketten van de NPM malwarecampagne MALFEX inmiddels meer dan 40.000 downloads verzameld. De dreiging is niet van korte duur: de actor publiceerde de eerste pakketten al in augustus 2023 en breidde daarna stapsgewijs verder uit.
Wat het extra zorgwekkend maakt, is dat meerdere pakketten nog steeds bruikbaar bleken op het moment dat de onderzoekers hun analyse afronden. Daardoor kunnen slachtoffers nog steeds besmet raken via een ogenschijnlijk normale installatie van JavaScript-afhankelijkheden.
Hoe MALFEX begon en groeide
De onderzoekers spreken over in totaal 12 gepubliceerde pakketten. Daarvan zijn er acht kwaadaardig. Een deel is inmiddels verwijderd uit het NPM-register: vijf pakketten werden verwijderd. Toch bleven er tijdens de controle nog drie pakketten installeerbaar tot 1 oktober, namelijk function-flag, function-color en cdn-img-fetch.
Vooral function-flag verdient aandacht. Checkmarx meldt dat dit pakket al kwaadaardig was sinds juli 2025, dat er meer dan 37.000 downloads zijn gelogd, en dat er in de context van de onderzoekers geen waarschuwingen stonden die het als malafide bestempelden.
Welke malware en data diefstal speelt hier?
MALFEX is geen één-gezins-aanpak. De campagne levert verschillende soorten schadelijke functionaliteit. Een daarvan is de Overlord RAT (Remote Access Trojan). Daarnaast worden ook infostealers verspreid die gegevens uit de omgeving van het slachtoffer verzamelen.
In de praktijk gaat het om twee duidelijke doelen:
- Controle en observatie via RAT-functionaliteit (zoals monitoring en remote shell toegang).
- Gegevensverzameling via stealercomponenten die specifieke applicaties en omgevingen targeten.
Checkmarx beschrijft dat de stealercomponent “movinlike” onder meer mikt op acht Discord-clients, zeven populaire browsers en cryptocurrency wallets. Daarmee lijkt de campagne gericht op het verzamelen van waardevolle informatie die later kan worden misbruikt.
Drie leverpaden: waarom dezelfde actor meerdere routes gebruikt
Een belangrijk detail uit de analyse is dat Checkmarx drie onafhankelijke leverpaden identificeerde. Die routes lijken geen gedeelde infrastructuur te gebruiken, maar zijn wel terug te leiden naar dezelfde dreigingsactor.
1) Overlord RAT en obfusceerde scripts tijdens npm-installatie
Het eerste leverpad start bij de periode rond npm install. Daar worden loaders voor de Overlord RAT en obfusceerde scripts uitgevoerd. De scripts kunnen tijdens installatie worden gestart op Windows, macOS en Linux, maar de uiteindelijke payload werkt volgens de onderzoekers alleen op Windows.
De Overlord RAT biedt de operator onder andere:
- screen capture
- keylogging
- monitoring van vensters
- remote shell toegang
- bestandszoekfuncties
- een verborgen bureaubladomgeving om activiteiten lastiger te detecteren
2) Code bij het laden van het pakket: movinlike als stealer
Het tweede pad draait om code die wordt uitgevoerd wanneer het pakket wordt geladen. Daarbij zou de actor de Node.js-informatie stealer movinlike op de systemen van slachtoffers neerzetten.
Net als bij de RAT-focus is dit geen “algemene” malware die op alles draait. Checkmarx beschrijft gerichte diefstal tegen specifieke populaire applicaties (Discord), browseromgevingen en cryptocurrency wallets.
3) function-flag als langlopende route met aparte downloaders
Het derde leverpad is volgens de onderzoekers het langstlopende onderdeel van de campagne. Dit draait rond een aparte downloader in elk kwaadaardig versiesegment van function-flag. Elke variant probeert een payload op te halen vanaf een andere locatie.
Opvallend is de manier waarop de infectieroutine is gebouwd. Checkmarx geeft aan dat de installatie kan afronden, zelfs als het downloaden van de payload faalt. Daarnaast werkt de routine volgens de onderzoekers stil (silent) op macOS en Linux, waardoor de impact daar beperkt blijft. In de beschreven analyse lijkt de besmetting dan ook voornamelijk op Windows terecht te komen.
OSV-adviezen: niet alle varianten even volledig gedekt
Er zijn OSV-advisories gepubliceerd voor zes van de kwaadwillende pakketten: tlxbnhd, tldriver, mxdriver, img-to-native, native-runner en cdn-img-fetch.
Toch zit er een nuance in. Checkmarx meldt dat de OSV-vermelding voor cdn-img-fetch slechts twee van de vier kwaadaardige iteraties omvat. Dat betekent dat het advies alleen niet altijd voldoende dekking biedt tegen de volledige reeks versies waarmee het pakket misbruik maakt.
Wie wordt geraakt? Beperkt qua doel, groot via installatiegedrag
Hoewel er geen duidelijke aanwijzing is gevonden voor gerichte aanvallen op specifieke organisaties of geografische regio’s, stelt Checkmarx wel een belangrijke conclusie: iedereen die de betreffende pakketnaam installeert, wordt in principe een doelwit.
De onderzoekers noemen bovendien dat geen legitieme of breed gebruikte pakketten afhankelijk blijken te zijn van operatorpakketten uit deze campagne. Daardoor lijkt de blootstelling vooral te gelden voor systemen die de malafide pakketnamen direct hebben geïnstalleerd, bijvoorbeeld als directe dependency in een project.
Met andere woorden: het risico hangt minder samen met “waar je werkt” en meer met “welke dependency je toevoegt”. Dat is precies waarom supply-chain security zo’n terugkerend thema blijft.
Wat kun je nu doen om dit soort NPM-risico’s te beperken?
Je kunt niet elk kwaadwillend pakket van tevoren kennen, maar je kunt je ontwikkel- en buildketen wel beter afschermen. Denk aan maatregelen die passen bij de realiteit van NPM: er kunnen pakketten zijn die pas schadelijk worden via install- of load-stappen, of die zich anders gedragen per platform.
1) Controleer dependencies op herkomst en noodzaak
Probeer zo min mogelijk “ongecontroleerde” afhankelijkheden toe te voegen. Houd per pakket bij waarom het nodig is, wie het heeft voorgesteld en welke versies worden gebruikt.
2) Let extra op pakketten met veel downloads
De MALFEX-casus laat zien dat veel downloads niet automatisch veiligheid betekenen. Integendeel: een pakket kan breed verspreid raken terwijl het toch kwaadaardig blijkt.
3) Gebruik advisories én vul gaten aan
OSV-advisories helpen, maar zoals Checkmarx laat zien kan dekking incompleet zijn. Controleer daarom ook release-notes, versie-specifieke tags en checks op je eigen lockfiles.
4) Beperk impact door op Windows vooral streng te zijn
In deze campagne blijkt de uiteindelijke payload volgens de onderzoekers vooral op Windows actief. Dat maakt het extra zinvol om op Windows een strengere security-houding te hanteren rond install scripts, build agents en toegang tot developer-machines.
Wil je dit breder doortrekken naar andere supply-chain of install-gedreven dreigingen? Lees ook eens hoe aanvallers via misbruik van internetprotocollen of valse installers kunnen binnenkomen: ClingSTUN: Linux backdoor via STUN misbruikt.
Samenvatting: de grootste les van MALFEX
De NPM malwarecampagne MALFEX is een voorbeeld van een supply-chain dreiging die langzaam maar langdurig doorloopt. Met 12 pakketten en uiteindelijk meer dan 40.000 downloads laat deze case zien dat het niet alleen draait om “welke malware”, maar vooral om hoe die via dependency-gedrag binnenkomt.
Duidelijk is ook dat één pakket meerdere rollen kan spelen: RAT-functionaliteit, data-stealing en downloaders per versie. Door gerichte monitoring van je dependency-setup en door minder blind te vertrouwen op pakketnamen, kun je de kans op besmetting aanzienlijk verkleinen.
Bron: https://www.securityweek.com/long-running-npm-malware-campaign-accumulates-40000-downloads/
