Mastra er et åpent TypeScript-rammeverk for å bygge AI-applikasjoner og AI-agenter. De berørte pakkene hadde til sammen mer enn 1,1 millioner ukentlige nedlastinger, noe som gjorde hendelsen relevant langt utover selve prosjektet . Microsoft knyttet operasjonen med høy sikkerhet til Sapphire Sleet i en oppdatering 19. juni .
Angrepet fulgte en kjent oppskrift for programvareforsyningskjeder: Først ble en konto med høy tillit kapret. Deretter ble ondsinnede pakkeversjoner distribuert gjennom den legitime kanalen.
Angriperne målrettet en legitim Mastra-vedlikeholder gjennom sosial manipulering og fikk tilgang til npm-påloggingsopplysningene. Kontoen, identifisert som ehindero, hadde publiseringstilgang til hele @mastra-omfanget .
Med den kaprede kontoen publiserte angriperne nye versjoner av pakkene i @mastra/*-navnerommet. Hele operasjonen skal ha pågått i et vindu på rundt 88 minutter, mens selve publiseringsbølgen ifølge enkelte analyser skjedde på så lite som 19 minutter . Hastigheten peker mot bruk av automatiserte skript, ikke manuelle opplastinger.
De kompromitterte versjonene inneholdt avhengigheten easy-day-js. Navnet ligner på dayjs, et legitimt og mye brukt JavaScript-bibliotek for dato- og tidsfunksjoner . Denne typen navnelikhet kalles typosquatting: Angriperen håper at utviklere eller automatiserte prosesser ikke oppdager den lille forskjellen.
Kampanjen er derfor omtalt som «easy-day-js» .
Den skadelige koden ble utløst gjennom npm-skriptet postinstall. Det betyr at nyttelasten kunne kjøre allerede da en utvikler eller et byggesystem utførte npm install – uten at applikasjonen eller en AI-agent måtte startes først .
Etter aktivering kunne nyttelasten lete etter kryptolommeboknøkler, skylegitimasjon og hemmeligheter brukt i CI/CD-systemer – verktøyene som automatisk bygger, tester og publiserer programvare . Microsoft beskriver også at koden slo av TLS-verifisering og lastet ned en ny stealer-komponent fra angripernes infrastruktur .
Microsoft vurderte 19. juni med høy sikkerhet at operasjonen var utført av Sapphire Sleet, en nordkoreansk statlig aktør som i hovedsak retter seg mot finans- og kryptosektoren. Vurderingen bygger blant annet på infrastrukturen og angrepsteknikkene som ble observert, og på likheter med tidligere operasjoner gruppen er knyttet til .
Amazon Threat Intelligence har i tillegg koblet Sapphire Sleet til tidligere angrep mot npm-pakker som axios, debug, chalk og typo-crypto .
Mastra-hendelsen kom samtidig som Microsoft allerede arbeidet med å redusere risikoen ved langlivede publiseringsnøkler. Tiltakene retter seg mot selve svakheten som angrepet utnyttet: En stjålet nøkkel kan gi angriperen langvarig tilgang til å publisere pakker i en annens navn.
Fra 17. august 2026 kan nye API-nøkler på NuGet.org – Microsofts pakkeregister for .NET-utviklere – ha en maksimal levetid på 30 dager, ned fra 365 dager .
Alle nøkler som ble opprettet før denne datoen, skal utløpe 1. november 2026 . Vedlikeholdere må derfor enten opprette nye nøkler etter behov eller gå over til Trusted Publishing.
Microsofts begrunnelse er at langlivede API-nøkler er «løse strenger som er enkle å miste», og at de har blitt en viktig angrepsflate i programvareforsyningskjeden . En nøkkel som lekker, kan gi angriperen et stort tidsvindu til å publisere trojaniserte pakker.
Microsoft anbefaler i stedet Trusted Publishing, en publiseringsmodell som ble lansert på NuGet.org i september 2025. Modellen bruker OpenID Connect (OIDC) til å bekrefte identiteten til arbeidsflyten i CI/CD-systemet, i stedet for å lagre en langlivet API-nøkkel .
I praksis skjer dette slik:
Fordelene er at:
Microsofts grep skjer som del av en bredere innstramming i pakkeøkosystemet.
npm login gir nå sesjonstokens som utløper etter to timer .Til sammen skal tiltakene gjøre det vanskeligere å gjenta akkurat denne typen angrep: én kapret vedlikeholderkonto med publiseringstilgang til et helt pakkeomfang.
npm install --ignore-scripts, eller innstillingen ignore-scripts = true, kan hindre at ondsinnede postinstall-skript kjører automatisk .Mastra-angrepet viser at tillit i åpen kildekode ikke bare handler om selve kildekoden. Den handler også om hvem som kan publisere, hvor lenge tilgangen varer, og om en automatisert arbeidsflyt kan bevise hvem den er – før en ny pakke slippes løs på resten av økosystemet.