Was genau ist passiert?
Am 29. April 2026 wurden vier offizielle SAP-Softwarepakete auf der Plattform npmjs.com mit Schadsoftware infiziert. Die Angreifer nennen sich „TeamPCP“ und haben die Aktion „Mini Shai-Hulud“ getauft (eine Anspielung auf die Würmer aus dem Science-Fiction-Roman „Dune“).
Die Pakete sind zentrale Bausteine für SAP-Cloud-Entwicklung und werden zusammen über 2,2 Millionen Mal pro Monat heruntergeladen:
⚠
@cap-js/sqlite Version 2.2.2⚠
@cap-js/postgres Version 2.2.2⚠
@cap-js/db-service Version 2.10.1⚠
mbt (Cloud MTA Build Tool) Version 1.2.48Zeitfenster: ca. 2–4 Stunden am 29. April 2026
SAP hat die Pakete innerhalb weniger Stunden bereinigt und am 30. April die Security Note 3747787 veröffentlicht.
Was macht die Schadsoftware?
Sobald eines der infizierten Pakete heruntergeladen wird, passiert Folgendes – automatisch und unsichtbar:
- Ein verstecktes Script startet beim Download (nicht erst bei der Nutzung)
- Es lädt eine zusätzliche Laufzeitumgebung („Bun“) herunter
- Ein 11 Megabyte großer, verschleierter Payload durchsucht den Rechner nach Zugangsdaten
- Gefundene Daten werden verschlüsselt – nur der Angreifer kann sie lesen
- Die Daten werden auf GitHub-Repositories des Opfers hochgeladen
- Mit gestohlenen Tokens versucht der Wurm, sich in weitere Pakete zu verbreiten
Was wird gestohlen?
- GitHub-Zugangsdaten – Zugriff auf Ihren Quellcode
- npm-Tokens – der Angreifer kann Pakete in Ihrem Namen veröffentlichen
- AWS Access Keys – Zugang zu Ihrer Amazon-Cloud
- Azure und Google Cloud Credentials – Zugang zu Microsoft/Google-Cloud
- SSH-Schlüssel – Zugang zu Servern
- SAP BTP Service Keys – Zugang zu Ihren SAP-Cloud-Diensten
- Umgebungsvariablen – oft mit Datenbank-Passwörtern und API-Schlüsseln
Bin ich betroffen? So prüfen Sie es
Fragen Sie Ihr Entwicklungsteam (oder Ihren externen BTP-Dienstleister):
- „Haben wir am 29. April irgendwo
npm installausgeführt – manuell oder automatisiert?“ - „Nutzen wir die Pakete @cap-js/sqlite, @cap-js/postgres, @cap-js/db-service oder mbt?“
- „Haben wir automatisierte Build-Pipelines, die regelmäßig laufen?“
Technische Prüfung (für Ihr Entwicklungsteam):
- Alle
package-lock.jsonnach den vier betroffenen Versionen durchsuchen - Container-Images, Build-Caches und Artifact-Repositories prüfen
- SHA-512-Hashes gegen SAP Note 3747787 abgleichen
- GitHub-Repos auf Branches namens
shai-huludprüfen - Workflow-Dateien:
.github/workflows/discussion.yamlodershai-hulud-workflow.yml - Self-hosted Runner mit Namen „SHA1HULUD“ suchen
- Commits mit Signatur „OhNoWhatsGoingOnWithGitHub:[Base64]“
Was muss ich JETZT tun?
Schritt 1: Prüfen
Alle Lockfiles, Container-Images, Build-Caches und Artifact-Repositories auf die vier betroffenen Paketversionen durchsuchen.
Schritt 2: Isolieren
Betroffene Entwicklerrechner und Build-Server sofort vom Netzwerk trennen.
Schritt 3: Neu aufsetzen
Betroffene Systeme komplett neu aufsetzen (Re-Imaging). Nicht nur das Paket löschen.
Schritt 4: Alle Zugangsdaten erneuern
Behandeln Sie jeden Zugangsdatensatz auf betroffenen Systemen als kompromittiert: GitHub-Tokens, npm-Tokens, AWS/Azure/GCP-Keys, SSH-Schlüssel, SAP BTP Service Keys, alle Passwörter in Umgebungsvariablen.
Schritt 5: Cloud-Logs prüfen
AWS CloudTrail, Azure Activity Logs, GCP Audit Logs auf ungewöhnliche API-Aufrufe von Entwickler-IPs oder Build-Servern prüfen.
Schritt 6: Updates einspielen
Auf die bereinigten Paketversionen aktualisieren.
Wie schütze ich mich in Zukunft?
„Stellt sicher, dass automatische Script-Ausführung bei Paket-Downloads deaktiviert ist (
npm config set ignore-scripts true), dass Paketversionen fixiert sind, und dass sensible Zugangsdaten in einem Credential Manager liegen, nicht in Umgebungsvariablen.“- ignore-scripts:
npm config set ignore-scripts true - Lockfiles:
npm cistattnpm install - OIDC: Trusted Publishers nur für einzelne Workflows, nicht ganze Repos
- Credential Management: Keine Secrets in Umgebungsvariablen
- Monitoring: GitHub-Suche nach „A Mini Shai-Hulud has Appeared“ als Frühwarnung
Technische Details
Angriff: Mini Shai-Hulud (TeamPCP) Datum: 29. April 2026 SAP Note: 3747787 Betroffene Pakete: 4 npm-Pakete (SAP CAP + MTA) Downloads/Monat: ~2,2 Millionen (kombiniert) Opfer (bekannt): 1.800+ GitHub-Repos kompromittiert Payload: execution.js (11 MB, obfuskiert) Verschluesselung: AES-256-GCM + RSA-4096 Exfiltration: GitHub Repos des Opfers Selbstverbreitung: Ja (ueber gestohlene npm-Tokens) Anti-Analyse: Nicht aktiv bei russischer Sprache SAP Komponente: BC-XS-CDX-NJS