laptop op een tafel met programmeercode op het scherm
Nieuws18 juni · 18:345 min leestijd

Mastra-framework vergiftigd: ruim 140 npm-pakketten voor AI-agenten besmet met credential-steler

Aanvallers kaapten een vergeten beheerdersaccount en injecteerden in ruim honderdveertig pakketten van het populaire AI-framework Mastra een wachtwoordsteler. Wie npm install draaide, liep risico, ook zonder de code te gebruiken.

Bouw je met AI-agenten of RAG-pijplijnen, dan is de kans groot dat Mastra ergens in je stack zit. Het is een van de meest gebruikte npm-frameworks voor agentische AI in TypeScript. Precies dat maakte het een aantrekkelijk doelwit: aanvallers wisten de hele @mastra-scope op npm te kapen en injecteerden in ruim honderdveertig pakketten een verborgen wachtwoordsteler. Microsoft Threat Intelligence en beveiligingsbedrijf Socket sloegen alarm, snel gevolgd door onderzoekers van Snyk, JFrog, Endor Labs en StepSecurity.

Wat er gebeurde

De aanval verliep niet via een lek in de code zelf, maar via een overgenomen account. The Hacker News meldt dat de aanvaller controle kreeg over een vergeten bijdrager-account waarvan de publicatierechten op de hele scope nooit waren ingetrokken. Met dat account werd in alle Mastra-pakketten in een klap een nieuwe afhankelijkheid toegevoegd: easy-day-js, een typosquat die zich voordeed als de razend populaire datumbibliotheek dayjs (goed voor tientallen miljoenen downloads per week).

De tijdlijn is verhelderend. Op 16 juni werd easy-day-js eerst als schoon lokaas gepubliceerd. Pas op 17 juni rond 01:01 UTC kreeg het pakket een kwaadaardige postinstall-hook, en twintig minuten later werden de ruim honderdveertig Mastra-pakketten opnieuw uitgebracht met de besmette afhankelijkheid erin, allemaal getagd als de nieuwste versie. Microsoft viel op dat die laatste versie handmatig was gepubliceerd vanaf een anoniem Tutamail-adres, terwijl alle eerdere versies via geautomatiseerde GitHub Actions-authenticatie liepen. Dat afwijkende publicatiepatroon was het belletje dat ging rinkelen.

Waarom een simpele npm install al genoeg was

Het venijnige zit in die postinstall-hook. Die draait automatisch zodra je npm install of npm update uitvoert, ongeacht of je de Mastra-code daadwerkelijk importeert in je applicatie. Een ontwikkelaarslaptop of een CI/CD-pijplijn die in het verkeerde tijdvenster een install draaide, voerde dus ongemerkt de eerste fase van de malware uit.

Die malware is geen amateurwerk. Het is een meertraps-stealer: een geobfusceerde dropper die eerst de TLS-verificatie uitschakelt, daarna een klein platformonafhankelijk client-programma dat persistentie regelt, en op Windows een in-memory injectie van een .NET-component. De buit waar het op jaagt: inloggegevens, browsergeschiedenis uit Chrome, Edge en Brave, een inventaris van draaiende processen, en de gegevens van ruim 160 browser-extensies voor cryptowallets. Alles wordt weggesluisd naar servers van de aanvaller.

Wat dit voor jou betekent

De besmette pakketten zijn inmiddels verwijderd en de publicatierechten van de aanvaller zijn ingetrokken. Maar als er in jouw omgeving tussen 17 juni 01:20 UTC en het moment van opschoning een install is gedraaid, moet je ervan uitgaan dat die machine is blootgesteld. Concreet:

  • Controleer je dependency-tree op Mastra-pakketten en op de afhankelijkheid easy-day-js. De versies mastra tot en met 1.13.0 en @mastra/core tot en met 1.42.0 zijn niet geraakt; daarboven wel.
  • Behandel besmette machines als gecompromitteerd: roteer de inloggegevens en API-sleutels die op die laptop of in die CI-runner stonden, en controleer op verbindingen naar de bekende command-and-control-adressen.
  • Pin je versies en draai voortaan npm install met de optie die installatiescripts overslaat, zodat een postinstall-hook niet zomaar kan uitvoeren.

Dit is opnieuw een herinnering dat je software-toeleveringsketen net zo goed je aanvalsoppervlak is. Hetzelfde mechanisme dook eerder op bij de valse JetBrains-plugins die AI-API-sleutels stalen van bijna 70.000 ontwikkelaars: vertrouwde gereedschappen die stilletjes van eigenaar wisselen. De verdediging zit niet in paniek, maar in hygiëne. Wie zijn afhankelijkheid van losse externe pakketten beperkt en bewust kiest voor een leverancier-onafhankelijke AI-stack met componenten die je zelf in de hand houdt, maakt zo'n vergiftiging een stuk minder dodelijk.

De nuchtere take: lock je versies vast, vertrouw geen 'latest' blind, en geef installatiescripts niet automatisch vrij baan. Een framework dat vandaag de hoeksteen van je AI-project is, kan morgen via een vergeten account het lek zijn. Eigenaarschap over wat er op je machines draait, is geen luxe maar basishygiëne.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

Grip op je software-keten

Een vergiftigd npm-pakket laat zien hoe broos een stack van losse externe afhankelijkheden is. Ik denk met je mee, ontwerp en bouw je AI- en automatiseringsoplossingen end-to-end, met versies die vastliggen en componenten die je zelf beheert, het liefst self-hosted zodat jij de baas blijft over wat er draait.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Genoemde integraties

Dit artikel noemt deze tools. Ik koppel ze op maat aan je eigen systemen.

Gerelateerde artikelen

Je AI-toolchain is je nieuwe aanvalsoppervlak
Inzicht
8 min

20 jun 09:00

Je AI-toolchain is je nieuwe aanvalsoppervlak

Van npm-pakketten tot IDE-plugins tot zelfgehoste gateways: elke laag van je AI-stack is een actief aanvalspad geworden. Zonder supply chain beleid loop je nu al risico.

Je AI-automatiseringsstack beveiligen tegen supply chain-aanvallen: van npm tot Langflow
Gids
10 min

24 jun 13:05

Je AI-automatiseringsstack beveiligen tegen supply chain-aanvallen: van npm tot Langflow

Het grootste deel van je AI-stack is code van vreemden. Zo leg je elke afhankelijkheid vast, verifieer je herkomst en houd je Langflow en LiteLLM dicht, stap voor stap.

Phishing herken je niet meer: verdediging begint bij je proces, niet je software
Inzicht
7 min

19 jun 11:00

Phishing herken je niet meer: verdediging begint bij je proces, niet je software

AI heeft de herkenbare signalen uit phishing gesloopt: een goede nepmail is niet meer van echt te onderscheiden. Daarom begint verdediging niet bij software of scherpere medewerkers, maar bij hoe je je processen ontwerpt.

Afpersgroep Helix steelt SharePoint-data via vishing en device-code phishing
Nieuws
5 min

9 jul 20:22

Afpersgroep Helix steelt SharePoint-data via vishing en device-code phishing

Een nieuwe afpersgroep, Helix, breekt in bij Microsoft 365 met valse telefoontjes en device-code phishing en trekt hele SharePoint-bibliotheken leeg. ReliaQuest ziet een bekend patroon. Dit betekent het voor je beveiliging.

Nep-SDK's van Paysafe en Skrill op npm en PyPI stelen ontwikkelaarsgeheimen
Nieuws
4 min

9 jul 00:09

Nep-SDK's van Paysafe en Skrill op npm en PyPI stelen ontwikkelaarsgeheimen

Beveiligingsbedrijf Socket vond zeventien nep-betaal-SDK's op npm en PyPI die zich voordoen als Paysafe, Skrill en Neteller. Ze geven een valse succesmelding terug en stelen ondertussen de cloud- en repository-sleutels van ontwikkelaars die er een betaalintegratie mee bouwen.

FBI waarschuwt voor supply-chain-groep TeamPCP en adviseert een minimale package-leeftijd
Nieuws
6 min

3 jul 14:10

FBI waarschuwt voor supply-chain-groep TeamPCP en adviseert een minimale package-leeftijd

De FBI bracht een officiele waarschuwing uit voor TeamPCP, die breed gebruikte ontwikkel- en beveiligingstools vergiftigde. De concrete raad: installeer een pakket pas na een minimale leeftijd van zeven dagen.