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

Google dicht 1.072 Chrome-lekken in twee releases met AI-hulp
Nieuws
3 min

31 jul 12:39

Google dicht 1.072 Chrome-lekken in twee releases met AI-hulp

Google dicht 1.072 beveiligingslekken in Chrome 149 en 150, meer dan in de 23 versies ervoor samen, en schrijft dat toe aan AI-agents. Tegelijk gaat de browser naar wekelijkse beveiligingsupdates.

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.

Microsoft loopt achter op de SharePoint-lekken die Anthropics Mythos vindt
Nieuws
4 min

29 jul 22:31

Microsoft loopt achter op de SharePoint-lekken die Anthropics Mythos vindt

Interne Microsoft-stukken die ProPublica inzag laten zien dat Anthropics Mythos sneller lekken vindt dan Microsoft ze patcht: 90 kritieke SharePoint-bugs in april, en een patchronde van 621 CVE's in juli.

Microsoft ziet ClickFix-aanvallen bij zakelijke klanten toenemen
Nieuws
4 min

18 jul 10:27

Microsoft ziet ClickFix-aanvallen bij zakelijke klanten toenemen

Microsoft ziet ClickFix-aanvallen bij zakelijke klanten toenemen. De infostealer ACR Stealer steelt wachtwoorden, sessietokens en Microsoft 365-documenten via een nep-CAPTCHA die medewerkers zelf een commando laat uitvoeren. Wat het betekent en hoe je je wapent.

Aanvallers besmetten populaire AsyncAPI-npm-pakketten met een inloggegevens-steler
Nieuws
4 min

15 jul 18:12

Aanvallers besmetten populaire AsyncAPI-npm-pakketten met een inloggegevens-steler

Aanvallers kaapten de release-pijplijn van vier veelgebruikte AsyncAPI-pakketten op npm en publiceerden versies met een inloggegevens-steler, waaronder @asyncapi/specs met ruim 2 miljoen wekelijkse downloads. Wie ze gebruikt, controleert nu en roteert tokens.

Het is maar een koppeling? Waarom een MCP-tool je AI-agent net zo goed aanstuurt als jij
Inzicht
7 min

14 jul 17:00

Het is maar een koppeling? Waarom een MCP-tool je AI-agent net zo goed aanstuurt als jij

Zodra je een MCP-tool aan een AI-agent koppelt, geef je de eigenaar van die tool-omschrijving dezelfde schrijftoegang tot je agent als jezelf. 'Het is maar een koppeling' is daarmee geen technisch detail, maar een vertrouwensbeslissing.