Supply-Chain-AttackenMalwareCyberkriminalität

Shai-Hulud-Kampagne: TeamPCP kompromittiert hunderte npm- und PyPI-Pakete mit Credential-Stealer

Shai-Hulud-Kampagne: TeamPCP kompromittiert hunderte npm- und PyPI-Pakete mit Credential-Stealer
Zusammenfassung

In einer der bislang umfangreichsten Supply-Chain-Attacken hat die Bedrohungsgruppe TeamPCP hunderte von Paketen auf npm und PyPI kompromittiert und mit Schadsoftware zur Diebstahl von Entwickleranmeldedaten versehen. Die sogenannte Shai-Hulud-Kampagne, die seit September andauert, startete mit populären Paketen von TanStack und Mistral AI, hat sich aber inzwischen auf zahlreiche weitere Projekte wie Bitwarden CLI, SAP-Pakete und OpenSearch ausgebreitet. Besonders bemerkenswert: Die Angreifer nutzten gestohlene OpenID Connect-Token, um malware-infizierte Versionen mit gültigen Provenance-Attestierungen (SLSA Build Level 3) zu veröffentlichen – wodurch die Pakete kryptografisch authentisch wirkten und für Entwickler nicht als manipuliert erkennbar waren. Für deutsche Unternehmen und Entwickler stellt dies ein erhebliches Risiko dar, insbesondere für solche, die auf beliebte Open-Source-Abhängigkeiten setzen. Die Malware stiehlt systematisch Zugangsdaten aus der GitHub Actions-Umgebung, Cloud-Provider-Credentials und andere sensible Informationen, was zu einer Kettenreaktion weiterer Infektionen führen kann. Security-Teams sollten umgehend überprüfen, ob ihre Systeme betroffene Paketversionen verwenden, und müssen davon ausgehen, dass entsprechende Credentials kompromittiert sind.

Die Shai-Hulud-Kampagne, bereits seit September aktiv, hat sich zu einer der gefährlichsten Supply-Chain-Attacken entwickelt. In der neuesten Angriffswelle kompromittierten die Angreifer zunächst mehrere TanStack-Pakete auf npm, breiteten sich aber schnell auf andere populäre Projekte aus – darunter Guardrails AI, UiPath, OpenSearch, Mistral AI und sogar die Bitwarden CLI. Laut verschiedenen Security-Anbietern wurden über 160 Pakete auf npm und 416 Artefakte über npm und PyPI kompromittiert.

Das Kernproblem: Die Angreifer gelang es, ihre malware-infizierte Software mit gültigen kryptografischen Signaturen auszustatten. Für Entwickler sahen diese Pakete völlig authentisch aus – es gab keinen sichtbaren Hinweis auf eine Kompromittierung. Die Attacke chain nutzte drei Schwachstellen: eine unsichere ‘pull_request_target’-Workflow in GitHub Actions, Cache-Poisoning und OIDC-Token-Diebstahl aus dem Runner-Memory.

Die Malware selbst konzentriert sich auf Credential-Stealing. Sie liest das Memory von GitHub-Actions-Prozessen aus und sammelt Credentials von über 100 Dateipfaden – darunter AWS-Keys, Azure-Tokens, Kryptowährungs-Wallets und Messaging-App-Secrets. Für die Datenexfiltration nutzte die Malware das Session-P2P-Netzwerk, was die Erkennung und Blockade erschwert.

Besonders tückisch: Die Malware schreibt sich in Claude Code Hooks und VS Code Auto-Run-Tasks ein. Das Deinstallieren des malware-Pakets reicht daher nicht aus – die Infektion bleibt bestehen. Durch gestohlene GitHub- und npm-Anmeldedaten verbreitet sich der Malware selbstständig, indem die Payload in Tarballs injiziert und neu veröffentlicht wird.

Microsoft Threat Intelligence analysierte eine Payload aus einem kompromittierten Mistral-AI-Paket auf PyPI. Bemerkenswert: Der Malware enthält Geofencing-Logik – er aktiviert sich nicht auf Systemen mit russischen Spracheinstellungen. In Umgebungen, die Israel oder Iran zuzuordnen sind, startet ein destruktiver Sabotage-Mechanismus mit einer Wahrscheinlichkeit von 1 zu 6, der das System mit ‘rm -rf/’ wischen kann.

Für deutsche Unternehmen und Entwickler bedeutet dies unmittelbare Handlung: Alle heruntergeladenen Versionen betroffener Pakete sollten als kompromittiert behandelt werden. Das BSI empfiehlt die sofortige Rotation aller Credentials und die Überprüfung der Zugriffsprotokolle. Langfristig sollten Organizations Lockfile-Only-Installs erzwingen und Behavioral-Analysis-Layer beim Package-Installation implementieren.