Die Sicherheitsforscher von Check Point Software Technologies haben seine Analyse zur technischen Vorgehensweise von Shai-Hulud 2 veröffentlicht. Die Shai-Hulud 2.0-Kampagne ist einer der umfangreichsten und schnellsten npm-Supply-Chain-Angriffe, die in den letzten Jahren beobachtet wurden.
Zwischen dem 21. und 23. November 2025 kompromittierten die Angreifer innerhalb weniger Stunden Hunderte von npm-Paketen und mehr als 25.000 GitHub-Repositories.
Im Gegensatz zu herkömmlicher Malware, die nach der Installation aktiviert wird, missbraucht diese Kampagne das npm-Preinstall-Lifecycle-Skript. Das führt dazu, dass schädliche Payloads bereits vor Abschluss der Installation und sogar dann ausgeführt werden, wenn die Installation selbst fehlschlägt.
Die Forscher von Check Point analysierten eine große Anzahl der von den Angreifern erstellten Repositories und bestätigten, dass die Kampagne zur Offenlegung von Multi-Cloud- und Entwickler-Anmeldedaten in erheblichem Umfang geführt hat. Von den rund 20.000 untersuchten Repositories wurden hunderte Anmeldedaten als offengelegt verifiziert. Viele Einträge waren zwar Duplikate, die aus mehreren Ausführungen in identischen CI- und CD-Umgebungen resultierten. Dennoch floss eine beträchtliche Menge sensibler Informationen ab, was die weitreichenden Auswirkungen dieses Vorfalls verdeutlicht.
So funktioniert der Shai-Hulud-Angriff
Die Infektion beginnt mit vertrauenswürdigen oder ähnlich aussehenden npm-Paketen, die entweder gekapert oder böswillig veröffentlicht werden. Sobald ein Entwickler ein betroffenes Paket installiert, wird der bösartige Code während des Vorinstallationsschritts ausgeführt. Dadurch erhält der Angreifer frühzeitig Zugriff auf die Entwicklungs- oder Build-Umgebung. Die Nutzlast besteht aus zwei Hauptkomponenten: setup_bun.js, das die Bun-Laufzeitumgebung installiert, und bun_environment.js, das die bösartige Kernlogik ausführt. Die Verwendung von Bun anstelle von Node.js ist eine absichtliche Umgehungstechnik. Die meisten Sicherheitstools und Sandboxes sind für die Verfolgung des Node.js-Verhaltens optimiert, was Bun zu einer attraktiven Möglichkeit macht, außerhalb der üblichen Erkennungspfade zu operieren.
Nach der Ausführung listet die Malware Umgebungsvariablen, SSH-Schlüssel, GitHub-Token, npm-Token, CI- und CD-Variablen sowie Cloud-Anmeldedaten für AWS, Azure und GCP auf. Diese Geheimnisse werden in strukturierten JSON-Dateien wie cloud.json, environment.json und actionsSecrets.json gesammelt.
Anstatt mit externen Befehls- und Kontrollservern zu kommunizieren, exfiltrierten die Angreifer die gestohlenen Daten zu GitHub. Sie erstellten öffentliche Repositories mit dem Namen „Sha1-Hulud: The Second Coming“ und luden die gestohlenen Geheimnisse direkt in diese hoch. Diese Technik mischt böswillige Aktivitäten in den legitimen GitHub-API-Datenverkehr ein und erschwert die Identifizierung erheblich.
Die Malware etablierte dann Persistenz. Sie registrierte infizierte Systeme als selbst gehostete GitHub-Runner, wodurch Angreifer beliebige Workflows aus der Ferne ausführen konnten. Dazu konnten bösartige Workflow-Dateien in die Repositories der Opfer eingefügt werden, um den langfristigen Zugriff aufrechtzuerhalten, selbst wenn das kompromittierte Paket später entfernt würde. Die Malware enthält auch einen destruktiven Failsafe-Mechanismus, der lokale Dateien löschen kann, wenn er eine Eindämmung oder Analyse erkennt.
Die Verbreitung ist teilweise automatisiert. Gestohlene Anmeldedaten werden verwendet, um neue bösartige npm-Pakete zu veröffentlichen oder neue GitHub-Repositorys zu erstellen, wodurch sich die Malware wie ein Wurm im gesamten JavaScript-Ökosystem ausbreitet.
Zu den offengelegten Daten gehören GitHub- und npm-Token, SSH-Schlüssel, Anmeldedaten von Cloud-Anbietern sowie sensible CI- und CD-Informationen. Betroffen sind Ökosysteme wie kryptobezogene Bibliotheken, Workflow-Automatisierungstools und eine Reihe von Entwicklungsplattformen. Die Kampagne zeigt, wie leicht eine Kompromittierung der Abhängigkeitsebene zu einem vollständigen Multi-Cloud-Zugriff, einer langfristigen Offenlegung der Entwickleridentität und einer weitreichenden Infiltration von CI- und CD-Workflows eskalieren kann.
Adi Bleih, Sicherheitsforscher im Bereich External Risk Management bei Check Point Software Technologies, kommentiert:

„Shai-Hulud 2.0 ist ein hochgradig koordinierter Angriff auf die Lieferkette mit einer ungewöhnlich aggressiven Ausführungskette. Durch die Aktivierung vor Abschluss der Installation und die Exfiltration sensibler Daten GitHub-Repositories, die die Angreifer kontrollieren, erhielten diese schnellen Zugriff auf erhebliche Mengen an Cloud- und Entwickler-Anmeldedaten.
Unsere Analyse von mehr als 20.000 Repositories, die im Rahmen der Kampagne erstellt wurden, zeigt das Ausmaß der Gefährdung. Diese Art von Vorfall veranschaulicht, wie eine einzige Abhängigkeit zu einem direkten Weg in CI- und CD-Systeme sowie Cloud-Umgebungen werden kann. Das Ausmaß und die Geschwindigkeit der Ausbreitung ähneln einigen der disruptivsten Vorfälle in der Lieferkette, die wir in den letzten Jahren erlebt haben. Sie erinnern an die weitreichenden Auswirkungen, die Log4j mit sich zog. Unternehmen müssen sofort handeln und jetzt bestehende Abhängigkeiten überprüfen, alle potenziell kompromittierten Zugangsdaten erneuern und ihre Build-Pipelines sichern.“
Fazit
Unternehmen, die npm verwenden, sollten von einer möglichen Gefährdung ausgehen. Sicherheitsteams müssen sofort Maßnahmen ergreifen, indem sie Abhängigkeitsmanifeste und Lockfiles überprüfen. Sie sollten kompromittierte Pakete entfernen und aus vertrauenswürdigen Quellen neu installieren sowie den npm-Cache leeren. Darüber hinaus wird empfohlen, alle in Entwicklungs-, CI- und CD-Umgebungen verwendeten Geheimnisse zu rotieren, GitHub-Runner zu überprüfen und alle nicht autorisierten oder unbekannten Einträge zu löschen. Nicht zuletzt sollten sie vorhandene fehlerhafte Workflow-Dateien entfernen.
(lb/Check Point)