MALFEX-malware op npm ruim 40.000 keer gedownload

MALFEX-malware op npm ruim 40.000 keer gedownload

Een supplychaincampagne gericht op het npm-register loopt al meer dan drie jaar, en de kwaadaardige pakketten ervan zijn meer dan 40.000 keer gedownload, meldt Checkmarx.

De onderzoekers noemen de campagne MALFEX. Via de campagne zijn de Overlord remote access trojan (RAT) en malware voor het stelen van gegevens verspreid. De aanvaller publiceerde het eerste pakket in augustus 2023.

Drie kwaadaardige pakketten nog beschikbaar

De aanvaller heeft 12 pakketten op npm gezet, het belangrijkste pakketregister voor JavaScript- en Node.js-ontwikkelaars. Acht daarvan zijn kwaadaardig. Vijf daarvan zijn inmiddels verwijderd. Op 1 oktober waren er nog drie te installeren: function-flag, function-color en cdn-img-fetch.

Checkmarx wees vooral op function-flag. Het pakket is sinds juli 2025 kwaadaardig en is meer dan 37.000 keer gedownload. Er is op dit moment geen enkele advisory die het als kwaadaardig aanmerkt.

Andere onderdelen van de campagne zijn wel gedocumenteerd. Open Source Vulnerabilities (OSV), een openbare database met beveiligingsadvisories voor opensourcepakketten, heeft vermeldingen voor zes van de kwaadaardige pakketten: tlxbnhd, tldriver, mxdriver, img-to-native, native-runner en cdn-img-fetch. Toch dekt de vermelding voor cdn-img-fetch maar twee van de vier kwaadaardige versies van dat pakket.

Drie afzonderlijke infectieroutes

Checkmarx vond drie onafhankelijke manieren waarop de campagne malware verspreidt. Ze gebruiken geen gedeelde infrastructuur, maar de onderzoekers koppelen ze alle drie aan dezelfde aanvaller.

Loaders voor Overlord RAT. De eerste route gebruikt verhulde scripts die tijdens npm install worden uitgevoerd, samen met loaders voor de Overlord RAT. De scripts kunnen starten op Windows, macOS en Linux, maar de payload werkt alleen op Windows.

Eenmaal geinstalleerd geeft Overlord de aanvaller uitgebreide mogelijkheden om de besmette computer te bespioneren en te besturen. Tot de functies behoren:

  • schermafbeeldingen maken
  • toetsaanslagen registreren
  • vensters in de gaten houden
  • toegang tot een shell op afstand
  • bestanden doorzoeken
  • een verborgen bureaublad, waarmee de aanvaller ongemerkt op het systeem kan werken

De movinlike-stealer. Bij de tweede route wordt kwaadaardige code uitgevoerd zodra het pakket wordt geladen, waarna een Node.js-infostealer genaamd "movinlike" op het systeem wordt gezet. De malware steelt gegevens uit acht Discord-clients, zeven populaire browsers en cryptowallets.

Downloaders in function-flag. De derde route is het langst actief. Elke kwaadaardige versie van function-flag bevat een eigen downloader, en elke downloader haalt zijn payload van een andere locatie op.

Volgens Checkmarx is de infectieroutine zo geschreven dat het pakket gewoon wordt geinstalleerd, ook als het downloaden van de payload mislukt. Op macOS en Linux faalt de routine geruisloos, waardoor alleen Windows-systemen worden getroffen.

Wie loopt risico

De pakketten zijn niet diep verweven met het bredere ecosysteem. Volgens Checkmarx lopen alleen systemen risico die de kwaadaardige pakketten bij naam hebben geinstalleerd, omdat geen van de pakketten een dependency is van een legitiem pakket.

"Geen enkel legitiem of veelgebruikt pakket is afhankelijk van een pakket van de aanvaller, dus het risico beperkt zich tot systemen die deze pakketnamen rechtstreeks hebben geinstalleerd. We vonden geen aanwijzingen dat specifieke regio's of organisaties het doelwit zijn; iedereen die de stealer installeert, wordt een doelwit", aldus Checkmarx.

Dat beperkt hoe ver de besmetting zich kan verspreiden. Het maakt de downloadaantallen er niet minder zorgwekkend op, zeker niet bij function-flag, dat al maanden online staat zonder dat het is gemarkeerd.

Het grotere plaatje

Het opvallendste aan MALFEX is hoe lang de campagne al standhoudt. Ze loopt sinds augustus 2023, en een pakket met meer dan 37.000 downloads staat nog steeds online zonder advisory. Het verwijderen van pakketten en het publiceren van advisories houdt duidelijk geen gelijke tred met de aanvaller. De onvolledige OSV-vermelding voor cdn-img-fetch wijst op hetzelfde gat. Teams die alleen op advisoryfeeds vertrouwen, denken misschien dat ze veilig zijn terwijl dat niet zo is.

Geruisloos falen, payloads op verschillende locaties en de keuze om alleen Windows aan te vallen maken de campagne allemaal moeilijker te ontdekken. Die kenmerken passen in een bredere trend van platformonafhankelijke malwarecampagnes die zijn gebouwd om detectie te ontlopen in plaats van zich snel te verspreiden. Het bredere risico voor softwarerepositories kwam onlangs ook naar voren bij de inbraak bij OpenInfra Europe Artifactory.

Ontwikkelaars doen er goed aan hun projecten en buildsystemen te controleren op de hierboven genoemde pakketnamen. Elke getroffen Windows-machine moet als gecompromitteerd worden beschouwd, en inloggegevens, browsergegevens en wallets die erop zijn opgeslagen moeten als gestolen worden beschouwd. Het is ook de moeite waard om te volgen hoe snel npm de drie resterende pakketten verwijdert, en of er advisories voor function-flag en function-color volgen.