Der Mini Shai-Hulud-Wurm hat seit dem 11. Mai 2024 eine neue Runde der Supply-Chain-Angriffe eingeleitet – und diesmal mit noch zerstörerischerer Wirkung. Innerhalb von nur 48 Stunden verbreiteten sich 172 kompromittierte Pakete über npm und PyPI, die nicht nur Daten stehlen, sondern auch persistente Backdoors installieren. Besonders brisant: Der Wurm überlebt selbst die Deinstallation der ursprünglichen Pakete und infiziert Entwicklerumgebungen nachhaltig.
Doch wie funktioniert dieser Angriff genau? Und vor allem: Wie können Unternehmen ihre Systeme jetzt schützen?
Die Angriffsmethode: Drei Schwachstellen in einem Wurm vereint
Der Angriff nutzt eine Kombination aus drei kritischen Schwachstellen, die gemeinsam eine fast unauffällige, aber extrem effektive Infektionskette ermöglichen. Laut dem offiziellen Postmortem von TanStack begann die Attacke mit einem manipulierten Fork des TanStack/router-Repositories.
- 1. Forking ohne Erkennung: Der Angreifer erstellte einen Fork unter dem Namen
zblgg/configuration, um die Erkennung durch Fork-Listen zu umgehen. Eine Pull-Request-Aktion löste einpull_request_target-Workflow aus, der Fremdcode ausführte. - 2. Cache-Poisoning: Der Angreifer manipulierte den GitHub-Actions-Cache. Als ein legitimer Maintainer den Fork in den Hauptbranch mergte, wurde der vergiftete Cache wiederhergestellt.
- 3. OIDC-Token-Diebstahl: Der Wurm las direkt aus dem Speicher des CI-Runners (
/proc/pid/mem) und extrahierte OIDC-Tokens, um direkt Pakete mit gültiger SLSA-Attestierung zu veröffentlichen – obwohl Tests eigentlich fehlschlagen sollten.
Das Ergebnis: 84 signierte Pakete erreichten die npm-Registrierung, obwohl die Build-Prozesse eigentlich fehlgeschlagen waren. „Jede dieser Schwachstellen überbrückt die Vertrauensgrenzen, die die anderen voraussetzten“, heißt es im Postmortem.
Von npm zu PyPI: Wie der Wurm die Grenzen der Ökosysteme sprengte
Doch der Angriff endete nicht bei JavaScript-Paketen. Innerhalb weniger Stunden übersprang der Wurm die Grenze zu PyPI – insbesondere durch das kompromittierte Paket mistralai==2.4.6.
- Ausführung bei Import, nicht bei Installation: Im Gegensatz zu npm-Paketen werden Python-Pakete beim Import ausgeführt, nicht erst bei der Installation. Das macht klassische npm-Mitigationen wie
--ignore-scriptswirkungslos. - Getarnte Payloads: Der Wurm lud eine Payload herunter, die sich als
Hugging Face Transformerstarnt – eine gängige Bibliothek in der KI-Entwicklung. - Quarantäne und falsche Fährten: Mistral AI bestätigte, dass das Paket
mistralai==2.4.6nie offiziell veröffentlicht wurde. Dennoch wurde es für kurze Zeit in PyPI verfügbar.
Microsoft Threat Intelligence und Wiz dokumentierten weitere betroffene Pakete, darunter 65 UiPath-Pakete, OpenSearch, Guardrails AI und 20 Squawk-Pakete. Die Angreifer hinter der Kampagne werden der Gruppe TeamPCP zugeschrieben, die bereits in früheren Shai-Hulud-Wellen aktiv war.
6 konkrete Schritte: So schützen Sie Ihre Entwicklerumgebungen
Die gute Nachricht: Es gibt praktische Maßnahmen, um sich vor dem Mini Shai-Hulud-Wurm zu schützen. Hier sind die wichtigsten Schritte, basierend auf Empfehlungen von Security-Experten wie Endor Labs und Wiz:
1. Isolation und Quarantäne der betroffenen Systeme
- Sofortige Isolation: Entwicklerworkstations oder CI-Runner, die eines der kompromittierten Pakete installiert haben, müssen sofort vom Netzwerk getrennt werden.
- Keine voreilige Token-Revokierung: Revokieren Sie Anmeldedaten erst nach der Isolation, da der Wurm sonst möglicherweise Daten löscht (wie Wiz in seiner Analyse feststellte).
2. Überprüfung der Paketabhängigkeiten mit automatisierten Tools
- SBOM-Analyse: Nutzen Sie Tools wie Syft, Dependency-Track oder OX Security, um eine Software Bill of Materials (SBOM) zu erstellen und verdächtige Pakete zu identifizieren.
- Signaturüberprüfung: Stellen Sie sicher, dass alle Pakete gültige SLSA- oder Sigstore-Signaturen besitzen. Der Wurm nutzte zwar gültige Signaturen, aber die Herkunft war manipuliert.
3. Restriktive CI/CD-Konfigurationen
- Branchen-spezifische Workflows: Konfigurieren Sie GitHub Actions oder GitLab CI so, dass nur bestimmte Branches oder Workflows Tokens für Veröffentlichungen erhalten.
- Verbot von Forks in Workflows: Deaktivieren Sie die Ausführung von Code aus Forks in
pull_request_target-Workflows, um ähnliche Angriffe zu verhindern.
4. Persistenz-Checks und manuelle Inspektionen
- Überprüfung auf Backdoors: Suchen Sie nach verdächtigen Dateien wie:
.claude/settings.json(Claude Code).vscode/tasks.json(VS Code)- System-Daemons unter
/etc/systemd/(Linux) oder~/Library/LaunchAgents/(macOS) - Speicherüberprüfung: CI-Runner sollten regelmäßig auf anormale Speicherzugriffe (z. B. Lesevorgänge aus
/proc/pid/mem) überwacht werden.
5. Schutz von Passwortmanagern und KI-Agenten
- KI-Agent-Konfigurationen: Der Wurm stiehlt MCP-Server-Authentifizierungstokens von KI-Agenten wie Claude oder Kiro. Überprüfen Sie:
.claude/settings.json.vscode/settings.json- Passwortmanager-Schutz: Deaktivieren Sie temporär die Autofill-Funktionen von 1Password oder Bitwarden, bis die Umgebung als sicher eingestuft ist.
6. Langfristige Monitoring- und Reaktionsstrategien
- Automatisierte Warnsysteme: Richten Sie Echtzeit-Monitoring für verdächtige Netzwerkaktivitäten ein, z. B. mit Tools wie CrowdStrike, SentinelOne oder Wiz.
- Notfallplan für Supply-Chain-Angriffe: Erstellen Sie einen vordefinierten Incident-Response-Plan, der Schritte für die schnelle Isolation, Analyse und Wiederherstellung enthält.
Fazit: Proaktivität ist der beste Schutz
Der Mini Shai-Hulud-Wurm zeigt einmal mehr, wie anfällig Software-Supply-Chains sind – selbst bei vermeintlich sicheren Ökosystemen wie npm. Die Kombination aus kompromittierten Paketen, persistenten Backdoors und geklauten Tokens macht diesen Angriff besonders gefährlich.
Unternehmen müssen jetzt handeln: Isolation, SBOM-Analysen, CI/CD-Härtung und regelmäßige Audits sind keine Option mehr, sondern eine Notwendigkeit. Die nächste Welle könnte jeden treffen – doch wer vorbereitet ist, kann Schäden minimieren.
KI-Zusammenfassung
Learn how the Shai-Hulud worm compromises 172 npm packages and spreads via AI agent configs. Discover 6 urgent steps to detect, isolate, and neutralize this self-spreading supply chain attack.
