144 Mastra-npm-Pakete bei 88-minütigem Lieferkettenangriff mit Hintertüren versehen

Sicherheitsforscher bei Socket haben einen Lieferkettenangriff offengelegt, der am 17. Juni 2026 144 Pakete im @mastra-Namespace von npm kompromittierte. Der Angreifer entführte ein Mitwirkendenkonto mit Veröffentlichungsrechten für das Mastra KI-Agenten-Framework und führte dann eine automatisierte Kampagne über 88 Minuten durch, die jedes betroffene Paket mit einer typosquatting-Abhängigkeit, die als Produktionsanforderung injiziert wurde, neu veröffentlichte. Laut Sockets Analyse sollte jeder Entwickler, CI-Runner oder jedes Build-System, das nach dem 16. Juni ein @mastra/*-Paket installiert hat, diese Umgebung als potenziell kompromittiert betrachten.
Mastra ist ein TypeScript-Framework zum Erstellen von KI-Agenten, und sein Kernpaket (@mastra/core) erhält über 918.000 wöchentliche Downloads. Die Breite des Angriffs — 144 Pakete über den gesamten Namespace, nicht nur ein einzelnes hochwertiges Ziel — bedeutet, dass Entwickler, die während des Angriffszeitfensters einen Teil des Mastra-Ökosystems installiert haben, exponiert waren.
Wie der Angriff funktionierte
Der Angreifer hat den Mastra-Code nicht direkt geändert. Stattdessen fügte er jedem neu veröffentlichten Paket eine Abhängigkeit namens easy-day-js hinzu. Der Name ist ein absichtliches Typosquatting der weit verbreiteten Datumsbibliothek dayjs — nah genug, dass die automatische Abhängigkeitsprüfung es übersehen könnte.
Das schädliche Paket easy-day-js enthielt einen postinstall-Hook – ein Skript, das npm automatisch während npm install ausführt, bevor ein Entwickler Code aus dem Paket importiert oder ausführt. Dieser Hook lud eine zweistufige Nutzlast herunter und führte sie aus:
- Stufe 1 (setup.cjs): Ein verschleierter Loader, der die TLS-Zertifikatsprüfung deaktivierte, eine Verbindung zur Angreiferinfrastruktur unter
23.254.164[.]92:8000herstellte, die Nutzlast der zweiten Stufe herunterlud, sie als separaten Hintergrundprozess startete und sich dann selbst löschte, um Spuren zu verwischen. - Stufe 2 (protocal.cjs): Ein ~41 KB großer plattformübergreifender Datendieb mit Persistenzmechanismen für Windows (Run-Registrierungsschlüssel), macOS (LaunchAgent) und Linux (systemd-Einheit). Der Implantat inventarisierte 166 Browsererweiterungen für Kryptowährungs-Wallets, sammelte den Browserverlauf von Chrome, Edge und Brave und öffnete einen Befehls- und Kontrollkanal, der zur Ausführung von beliebigem Folgecode fähig war.
Das Angriffszeitfenster erstreckte sich vom 17. Juni, 01:12 bis 02:39 UTC. Die Prüfprotokolle von npm zeigen, dass ein einzelnes Konto – ehindero, ein Mitwirkender, dessen Veröffentlichungszugriff auf den @mastra-Bereich nie widerrufen wurde – alle 142 schädlichen Paketversionen innerhalb dieser 88 Minuten veröffentlichte. Laut zusätzlicher Berichte identifizierte und meldete auch das Sicherheitsteam von Microsoft den Angriff.
Wer ist gefährdet
Jedes System, das zwischen dem 16. Juni und dem Zeitpunkt der Entfernung der schädlichen Versionen npm install mit einer @mastra/*-Abhängigkeit ausgeführt hat, stellt eine potenzielle Kompromittierung dar. Dies umfasst Entwickler-Laptops, CI/CD-Pipeline-Runner, Docker-Build-Systeme und Cloud-Build-Umgebungen. Da die Nutzlast während der Installation über einen postinstall-Hook ausgeführt wird – nicht zur Laufzeit der Anwendung – sind selbst Systeme, die die Anwendung nicht ausgeführt haben, betroffen, wenn sie npm install ausgeführt haben.
Abhilfeschritte
Socket und andere Sicherheitsforscher empfehlen, jedes betroffene System als vollständig kompromittiert zu betrachten. Spezifische Maßnahmen:
- Persistenz entfernen: Löschen Sie Windows Run-Registrierungseinträge, macOS LaunchAgent-Plists und Linux-systemd-Einheiten, die mit dem Implantat verbunden sind.
- Alle Anmeldeinformationen auf betroffenen Maschinen rotieren: npm-Tokens, Cloud-Anbieter-Anmeldeinformationen (AWS, GCP, Azure), SSH-Schlüssel und API-Schlüssel.
- Kryptowährungs-Wallets auf einem sauberen, nicht betroffenen Gerät rotieren – der Implantat zielte speziell auf 166 Browser-Wallet-Erweiterungen ab.
- CI/CD-Pipelines auf Anzeichen von unbefugtem Zugriff oder exfiltrierten Geheimnissen prüfen.
Für zukünftigen Schutz empfiehlt Socket, --ignore-scripts zu npm-install-Befehlen in CI-Pipelines hinzuzufügen, um postinstall-Hooks standardmäßig zu deaktivieren – eine einfache Abmilderung, die diesen spezifischen Angriffsvektor vollständig blockiert hätte.
Die Organisation @mastra hat die schädlichen Paketversionen von npm entfernt. Entwickler sollten auf saubere Versionen aktualisieren und überprüfen, dass easy-day-js in keinem node_modules-Verzeichnis oder einer Sperrdatei erscheint.
Originally reported by Socket. Read the original article for additional details.
View original source