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:

Betroffene Pakete und Versionen:

@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.48

Zeitfenster: 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:

  1. Ein verstecktes Script startet beim Download (nicht erst bei der Nutzung)
  2. Es lädt eine zusätzliche Laufzeitumgebung („Bun“) herunter
  3. Ein 11 Megabyte großer, verschleierter Payload durchsucht den Rechner nach Zugangsdaten
  4. Gefundene Daten werden verschlüsselt – nur der Angreifer kann sie lesen
  5. Die Daten werden auf GitHub-Repositories des Opfers hochgeladen
  6. Mit gestohlenen Tokens versucht der Wurm, sich in weitere Pakete zu verbreiten
In SAP-Sprache: Der Angriff ist vergleichbar mit einem Virus, der sich über SAP-Transporte verbreitet und bei jedem Import automatisch alle RFC-Passwörter und Service-User-Credentials ausliest und an den Angreifer sendet. Nur dass es hier nicht um das SAP-System selbst geht, sondern um den Rechner, auf dem entwickelt wird.

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):

  1. „Haben wir am 29. April irgendwo npm install ausgeführt – manuell oder automatisiert?“
  2. „Nutzen wir die Pakete @cap-js/sqlite, @cap-js/postgres, @cap-js/db-service oder mbt?“
  3. „Haben wir automatisierte Build-Pipelines, die regelmäßig laufen?“
Wichtig: Auch wenn kein Mensch an diesem Tag aktiv gearbeitet hat – automatisierte Systeme (Build-Server, Nightly Builds, Docker-Container-Erstellungen) könnten die Pakete im Hintergrund heruntergeladen haben. Fragen Sie explizit nach automatisierten Prozessen!

Technische Prüfung (für Ihr Entwicklungsteam):

  • Alle package-lock.json nach 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-hulud prüfen
  • Workflow-Dateien: .github/workflows/discussion.yaml oder shai-hulud-workflow.yml
  • Self-hosted Runner mit Namen „SHA1HULUD“ suchen
  • Commits mit Signatur „OhNoWhatsGoingOnWithGitHub:[Base64]“

Was muss ich JETZT tun?

KRITISCH: Deinstallation oder Downgrade allein reicht NICHT. Der Schadcode kann Persistenzmechanismen nutzen, die ein Paket-Downgrade überleben – zum Beispiel in IDE-Konfigurationen. SAP empfiehlt das vollständige Neuaufsetzen (Re-Imaging) betroffener Systeme.

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.

Sie wissen nicht, wo Sie anfangen sollen? Wir bieten ein 48-Stunden Rapid Assessment an, bei dem wir Ihre SAP-Entwicklungsumgebung auf Spuren des Angriffs prüfen. Jetzt anfragen →

Wie schütze ich mich in Zukunft?

Für SAP-Basis-Teams – was Sie Ihrem Entwicklungsteam sagen sollten:

„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 ci statt npm 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