Die Attacke wurde zwischen dem 29. April 2026, 09:55 UTC und 12:14 UTC durchgeführt. Die manipulierten Pakete führten einen neuen Preinstall-Hook in der package.json ein, der eine Datei namens “setup.mjs” ausführt. Diese fungiert als Loader für die Bun JavaScript Runtime und startet einen Credential Stealer sowie ein Propagations-Framework namens “execution.js”.
Die Malware wurde gezielt entwickelt, um eine breite Palette von Anmeldeinformationen zu stehlen: lokale Entwickler-Credentials, GitHub- und npm-Tokens, GitHub Actions Secrets sowie Cloud-Secrets von den vier großen Cloud-Providern. Die gestohlenen Daten werden verschlüsselt und in öffentliche GitHub-Repositories exfiltriert, die auf dem Konto des Opfers erstellt werden und mit der Beschreibung “A Mini Shai-Hulud has Appeared” versehen sind. Zum Zeitpunkt der Veröffentlichung existierten über 1.100 solcher verdächtiger Repositories.
Besonders besorgniserregend ist die Selbstausbreitungs-Fähigkeit der Malware. Das 11,6 MB große Payload kann sich durch Entwickler- und Release-Workflows propagieren und nutzt gestohlene GitHub- und npm-Tokens, um bösartige GitHub Actions Workflows in Victim-Repositories einzuschleusen. Dies ermöglicht dem Angreifer, Repository-Secrets zu stehlen und vergiftete Versionen der npm-Pakete zu veröffentlichen.
Die Analyse der Wurzelursachen zeigt zwei unterschiedliche Angriffsvektoren: Bei den “@cap-js”-Paketen wurde das Konto von RoshniNaveenaS kompromittiert. Der Angreifer modifizierte einen Workflow auf einem Non-Main-Branch und nutzte das extrahierte npm OIDC Token zur Veröffentlichung ohne Provenance. Beim “mbt”-Paket wird vermutet, dass ein statischer npm-Token des “cloudmtabot” Accounts durch noch ungeklärte Mittel kompromittiert wurde.
Ein kritischer Konfigurationsfehler war dabei essentiell für den Erfolg: Die npm OIDC Trusted Publisher-Konfiguration vertraute jedem Workflow im Repository, nicht nur dem kanonischen Release-Workflow. Dies ermöglichte es dem Angreifer, OIDC-Tokens auf nicht-autorisierten Branches auszutauschen.
Die Paketverantwortlichen haben mittlerweile sichere Versionen veröffentlicht, die die kompromittierten Releases ersetzen. Deutsche Unternehmen sollten ihre Abhängigkeiten umgehend aktualisieren und prüfen, ob ihre Systeme betroffen sind.
