npm Supply-Chain-Angriff: Red Hat durch Mini Shai-Hulud Kompromittiert

npm Supply-Chain-Angriff: Red Hat durch Mini Shai-Hulud Kompromittiert

lschvn

Am 1. Juni 2026 identifizierte Wiz Research eine neue Welle von npm-Supply-Chain-Kompromittierungen, die auf den npm-Namensraum @redhat-cloud-services abzielten. Die Kampagne, genannt Miasma, schleuste Credential-Diebstahl-Malware in mindestens 32 Paket-Releases ein, mit insgesamt rund 80.000 Weekly Downloads. Der bösartige Code wurde inzwischen größtenteils widerrufen, aber der Vorfall zeigt, wie weit Supply-Chain-Angreifer sich entwickelt haben.

Ein Vertrautes Werkzeugset mit Neuen Tricks

Die Payload stammt von der Mini-Shai-Hulud-Malware, die von der Bedrohungsgruppe TeamPCP Ende 2025 Open-Source gestellt wurde. Frühere Kampagnen mit diesem Toolkit zielten auf Tanstack und andere große npm-Pakete ab. Der Miasma-Variant nimmt kosmetische Änderungen vor, Dune-Referenzen werden durch griechische Mythologie ersetzt ("spartan"), aber das zugrunde liegende Vorgehen bleibt im Wesentlichen gleich.

Was sich in dieser Iteration geändert hat, ist der Zielumfang. Die Malware sammelt jetzt explizit GCP- und Azure-Identitäten und erfasst jede Cloud-Identität, auf die die infizierte Maschine Zugriff hat. Anstatt nur Secrets zu extrahieren, sind die Angreifer nun daran interessiert, direkten Zugang zu Cloud-Umgebungen selbst zu erhalten.

Die zweite bemerkenswerte Evolution ist Per-Infection-Verschlüsselung. Frühere Shai-Hulud-Varianten replizierten sich mit minimaler Variation, was Hash-basiertes IOC-Tracking ermöglichte. Miasma generiert eine einzigartig verschlüsselte Payload für jede Infektion, was bedeutet, dass ein Hash, der eine kompromittierte Maschine erkennt, eine andere nicht erkennen wird.

Wie der Angriff Funktionierte

Beweise deuten darauf hin, dass ein Red-Hat-Mitarbeiter-GitHub-Konto kompromittiert und verwendet wurde, um bösartige Orphan-Commits auf drei RedHatInsights-Repositories zu pushen :

  • RedHatInsights/frontend-components
  • RedHatInsights/javascript-clients
  • RedHatInsights/platform-frontend-ai-toolkit

Diese Commits führten einen minimalen GitHub-Actions-Workflow ein, der bei jedem Push auf jeden Branch ausgelöst wurde. Der Workflow forderte ein GitHub-OIDC-Identitätstoken (id-token: write) an und führte eine obfuscated Payload _index.js aus, die Pakete direkt auf npm veröffentlichte, mit gültigen SLSA-Provenienz-Attestierungen.

SLSA-Provenienz soll verifizieren, dass ein Paket aus einem spezifischen Source-Commit von einem vertrauenswürdigen Builder gebaut wurde. Indem sie gültige Attestierungen generierten, machten die Angreifer die bösartigen Pakete als legitime Red-Hat-Releases erscheinen und unterminierten damit einen Schlüsselmechanismus der Supply-Chain-Sicherheit.

Umfang der Schäden

Der Angriff traf eine breite Palette von Red-Hat-Cloud-Services-JavaScript-Clients :

PaketKompromittierte Versionen
@redhat-cloud-services/topological-inventory-client3.0.10, 3.0.11, 3.0.13
@redhat-cloud-services/rbac-client9.0.3, 9.0.4, 9.0.6
@redhat-cloud-services/insights-client4.0.4, 4.0.5, 4.0.7
@redhat-cloud-services/frontend-components7.7.2, 7.7.3, 7.7.5
@redhat-cloud-services/notifications-client6.1.4, 6.1.5, 6.1.7

Eine zweite Welle erschien am 4. Juni und nutzte binding.gyp (eine native Node.js-Build-Konfigurationsdatei), um während der Paketinstallation bösartigen Code auszuführen, konsistent mit der Miasma-Kampagne.

Was das für das npm-Ökosystem Bedeutet

Der Miasma-Angriff demonstriert eine beunruhigende Progression im npm-Supply-Chain-Krieg. Drei Kernpunkte :

Vertrauenswürdige Publisher sind das schwache Glied. SLSA-Provenienz, OIDC-Tokens und "verifizierter Herausgeber"-Badges wurden hier alle untergraben. Das Sicherheitsmodell nimmt an, dass die GitHub- und npm-Konten eines Herausgebers sicher sind. Beide wurden kompromittiert.

Open-Source-Malware senkt die Einstiegshürde. TeamPCP hat den Mini-Shai-Hulud-Code öffentlich veröffentlicht. Miasma wird nicht mit Sicherheit TeamPCP zugeschrieben, die Ähnlichkeiten könnten auf Copycat-Akteure hinweisen, die dasselbe öffentlich verfügbare Toolkit nutzen.

Erkennung wird schwieriger, nicht einfacher. Per-Infection-Verschlüsselung, SLSA-Attestierungsmissbrauch und Living-off-the-Land-Techniken bedeuten, dass traditionelle Verteidigungen (Paket-Scanning, Hash-basierte IOCs) zunehmend unzureichend sind.

Empfohlene Maßnahmen

Organisationen, die Red-Hat-JavaScript-Clients verwenden, sollten :

  1. Systeme auf betroffene Paketversionen prüfen und auf gepatchte Releases aktualisieren
  2. Alle Secrets erneuern, die von Entwickler-Workstations aus zugänglich sind, GitHub-Tokens, Cloud-Credentials, CI/CD-Secrets
  3. GitHub-Aktivität überprüfen auf nicht autorisierte Repositories, neue Zugriffstokens oder verdächtige Workflow-Ausführungen
  4. Dependency-Allowlisting implementieren und über .npmrc oder Unternehmensrichtlinie durchsetzen
  5. SBOMs für alle Produktionsabhängigkeiten generieren, um schnellere Incident-Response zu ermöglichen

Das npm-Ökosystem bleibt ein Hochwert-Ziel. Miasma ist kein isolierter Vorfall, es ist die letzte Iteration einer eskalierenden Kampagne.

Häufig gestellte Fragen

Verwandte Artikel

Weitere Berichterstattung zu ähnlichen Themen und Tags.

Playwright v1.61.0: WebAuthn-Passkeys, eine echte WebStorage-API und Trace-artige Video-Modi für den Test-Runner
security

Playwright v1.61.0: WebAuthn-Passkeys, eine echte WebStorage-API und Trace-artige Video-Modi für den Test-Runner

Playwright v1.61.0 (15. Juni 2026) liefert einen virtuellen Authenticator für WebAuthn/Passkey-Zeremonien, eine erstklassige page.localStorage / page.sessionStorage-API, Netzwerk-Security-Details auf APIResponses und bringt die Video-Aufzeichnung des Test-Runners auf Parität mit der Trace-Aufzeichnung. Browser-Kanäle: Chromium 149, Firefox 151, WebKit 26.5.
Vite 8.1 Beta: direkte `.wasm`-Imports, `build.chunkImportMap` und `server.hmr` → `server.ws`-Umbenennung
typescript

Vite 8.1 Beta: direkte `.wasm`-Imports, `build.chunkImportMap` und `server.hmr` → `server.ws`-Umbenennung

Vite 8.1.0-beta.0 (15. Juni 2026) ist die erste Beta der 8.1-Linie. Sie liefert den WASM-ESM-Integration-Standard als direkte .wasm-Imports, eine build.chunkImportMap-Option, die Import Maps nutzt, um Chunk-Cache-Hit-Raten zu verbessern, die Integration mit Vite Task für Zero-Config-Build-Caching, Support für lightningcss-Plugin-Dependencies, und einen Breaking Rename, der alle `server.hmr`-Optionen nach `server.ws` verschiebt.
esbuild 0.28.1: Erstes Release seit zwei Monaten mit einer High-Severity-Deno-RCE, einem Windows-Path-Traversal und einem `using`-Disposal-Bug
security

esbuild 0.28.1: Erstes Release seit zwei Monaten mit einer High-Severity-Deno-RCE, einem Windows-Path-Traversal und einem `using`-Disposal-Bug

esbuild v0.28.1 (11. Juni 2026) ist das erste Release seit April. Es behebt eine CVSS-8.1-Remote-Code-Execution in der Deno-API via NPM_CONFIG_REGISTRY, einen nur Windows betreffenden Path-Traversal im Dev-Server und einen Minifier-Bug, der das Ressourcen-Disposal mit `using` und `await using` stillschweigend kaputtgemacht hat.

Kommentare

Anmelden Melden Sie sich an, um an der Diskussion teilzunehmen.

Noch keine Kommentare. Seien Sie der Erste, der seine Gedanken teilt.