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

Genoemde integraties

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

Gerelateerde artikelen

FortiBleed: wachtwoorden van 75.000 Fortinet-firewalls liggen op straat, roteer nuNieuws

FortiBleed: wachtwoorden van 75.000 Fortinet-firewalls liggen op straat, roteer nu

Onderzoekers vonden inlog- en VPN-gegevens van bijna 74.000 FortiGate-firewalls in 194 landen, ongeveer de helft van alle aan het internet hangende Fortinets. Draait jouw bedrijf een FortiGate, dan is direct handelen geboden.

Lees artikel
Google lanceert ARD: open standaard waarmee AI-agenten zelf hun tools vindenNieuws

Google lanceert ARD: open standaard waarmee AI-agenten zelf hun tools vinden

Met Agentic Resource Discovery publiceert Google een open specificatie waarmee AI-agenten zelfstandig tools, skills en MCP-servers opzoeken en hun herkomst verifiëren. GitHub, Microsoft en Hugging Face doen mee.

Lees artikel
AI-transparantieplicht op je website: zo voldoe je aan artikel 50Gids

AI-transparantieplicht op je website: zo voldoe je aan artikel 50

Een praktische how-to om de transparantieplicht van de AI Act echt te implementeren: van chatbot-disclosure en het labelen van AI-content tot een werkbaar AI-register en logging.

Lees artikel
Van SEO naar AEO: zo blijf je vindbaar in een wereld van AI-zoekmachinesArtikel

Van SEO naar AEO: zo blijf je vindbaar in een wereld van AI-zoekmachines

Google-SEO is niet dood, maar vindbaarheid behandelen als een ranking-spel op één zoekmachine is dat wel aan het worden. Waarom de verschuiving naar antwoordmachines je sneller raakt dan je denkt.

Lees artikel
OpenAI kaapt Noam Shazeer weg bij Google: de mede-uitvinder van de transformer stapt overNieuws

OpenAI kaapt Noam Shazeer weg bij Google: de mede-uitvinder van de transformer stapt over

Noam Shazeer, mede-uitvinder van de transformer-architectuur en co-lead van Google Gemini, ruilt Google in voor OpenAI. De overstap legt bloot hoe de macht over AI zich concentreert bij een handvol labs, en waarom dat jouw keuzes raakt.

Lees artikel
Microsoft verkoopt OpenAI-modellen aan Chinese techreuzen via AzureNieuws

Microsoft verkoopt OpenAI-modellen aan Chinese techreuzen via Azure

Bloomberg onthult dat Microsoft via Azure vooral OpenAI-modellen verkoopt aan ByteDance, Ant Group en Tencent. De Chinese AI-omzet verdrievoudigde, terwijl OpenAI en Anthropic zelf weigeren te leveren. Wat dat zegt over je afhankelijkheid van één leverancier.

Lees artikel