Kompromittierte @joyfill npm-Pakete verbreiten RAT via Blockchain-C2

Schritt für Schritt
So lief der Angriff ab
Klicken Sie auf eine Phase für Details – oder lassen Sie die Animation durchlaufen.
PHASE 1/6 · Erstzugriff über die Lieferkette

Angreifer schleusten bösartige Beta-Versionen zweier legitimer npm-Pakete in die Registry.

T1195.002 – Supply Chain Compromise: Compromise Software Supply Chain
  • Betroffen: @joyfill/layouts (0.1.2-2773.beta.0-.2) und @joyfill/components (4.0.0-rc24-2773-beta.4-.6)
  • Erste Veröffentlichung am 28.07.2026 um 10:54 UTC bzw. 11:03 UTC
  • Pakete werden regulär ca. 16.000-mal pro Woche heruntergeladen
  • Zugeschrieben dem nordkoreanischen Akteur PolinRider (Contagious Interview)
PHASE 2/6 · Ausführung beim Import

Der Schadcode wird bereits beim bloßen Importieren des Pakets ohne postinstall-Skript ausgelöst.

T1059.007 – Command and Scripting Interpreter: JavaScript
  • Ausführung bei require()/import – z.B. Unit-Test, Bundler-Lauf, Dev-Server oder Produktions-Deploy
  • Schadcode ist in die Paket-Einstiegsbündel einkompiliert
  • Stufe 1: verschleierter Loader zum Nachladen des eigentlichen Schadcodes
  • Keine Benutzerinteraktion nach Installation erforderlich
PHASE 3/6 · Verschleierung über Blockchain-Abfragen

Die Malware versteckt ihre Steuerungsinfrastruktur hinter legitimem Blockchain-Verkehr (Dead Drop).

T1027 – Obfuscated Files or Information T1102 – Web Service
  • Stufe 2: Abfrage der Netzwerke Tron und Aptos als 'toter Briefkasten'
  • Verweis auf BNB Smart Chain, Nutzlast per XOR-Verfahren entschlüsselt
  • HTTP-C2-Beacon wird bis Stufe 2 verzögert, erschwert Netzwerküberwachung
  • API-Aufrufe u.a. an api.trongrid.io und bsc-dataseed.binance.org
PHASE 4/6 · C2-Verbindung & Fernzugriff (RAT)

Ein Remote-Access-Trojaner baut eine dauerhafte Verbindung auf und verankert sich in Entwickler-Tools.

T1071.001 – Application Layer Protocol: Web Protocols T1105 – Ingress Tool Transfer
  • Stufe 3: Kampagnen-Marker A9-0135-3 wählt C2-Server, z.B. IP 166.88.134.62
  • Stufe 4: DEV RAT baut über Socket.IO dauerhafte Verbindung auf
  • Infiziert die globale npm-CLI (npm/lib/cli.js) – wurmartige Ausbreitung
  • Persistenz auch in VS Code und Discord (Marker /*C250617A*/)
PHASE 5/6 · Datendiebstahl (OmniStealer)

Ein Python-basierter Infostealer greift gezielt Entwickler-Zugangsdaten, Browser-Daten und Krypto-Wallets ab.

T1555 – Credentials from Password Stores T1005 – Data from Local System
  • Stufe 5: OmniStealer sammelt Git-Credentials, API-Keys und Cloud-Tokens
  • Abgriff von Browser-Daten, Clipboard-Inhalten und Krypto-Wallets
  • Staging-Verzeichnisse: %USERPROFILE%\.npm oder /tmp/.npm
  • Systemdaten werden vom RAT gesammelt
PHASE 6/6 · Auswirkung & Ausweitung

Über gestohlene Zugangsdaten kann sich der Schaden auf die gesamte Cloud-Infrastruktur ausweiten.

T1078 – Valid Accounts T1567 – Exfiltration Over Web Service
  • Vollständige Kompromittierung des Entwickler-Rechners und der Build-Umgebung
  • Ausweitung auf Cloud-Infrastruktur durch gestohlene Tokens möglich
  • Wahrscheinlicher Abfluss personenbezogener Daten (DSGVO Art. 33/34)
  • PolinRider-Kampagne umfasst mind. 108 bösartige Pakete (npm, Packagist, Go, Chrome)
Kurz & knapp beantwortet
Häufige Fragen zu diesem Vorfall
Bin ich von den kompromittierten Joyfill-npm-Paketen betroffen?
Betroffen sind Sie, wenn Ihre Entwickler oder Build-Systeme am 28. Juli 2026 eine der bösartigen Versionen gezogen haben: @joyfill/layouts@0.1.2-2773.beta.0/.1/.2 oder @joyfill/components@4.0.0-rc24-2773-beta.4/.5/.6. Prüfen Sie Ihre Lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml) nach den Versionsmustern 0.1.2-2773.beta.* und 4.0.0-rc24-2773-beta.*. Die Pakete können auch als indirekte Abhängigkeit eines anderen Pakets vorhanden sein.
Was muss ich jetzt konkret tun, wenn ich betroffen bin?
Entfernen Sie die bösartigen Versionen restlos aus allen Caches, Mirrors, Build-Images und Lockfiles und pinnen Sie auf die sauberen Versionen @joyfill/layouts@0.1.1 und @joyfill/components@4.0.0-rc24. Rotieren Sie umgehend alle Passwörter, Git-Credentials, API-Keys, Cloud-Tokens und Krypto-Wallets betroffener Entwickler. Isolieren Sie betroffene Rechner vom Netz und lassen Sie sie forensisch untersuchen; ein Neuaufsetzen wird dringend empfohlen.
Reicht es, das Paket nur zu installieren, damit die Malware aktiv wird?
Nein, es ist sogar noch gefährlicher: Der Schadcode benötigt kein postinstall-Skript, sondern wird bereits beim bloßen Importieren des Pakets ausgeführt – etwa per require() oder import. Damit reicht ein einziger Unit-Test, ein Bundler-Lauf, ein Start des Dev-Servers oder ein Produktions-Deployment aus, um die Malware auszulösen.
Welche Daten wurden gestohlen und ist das ein DSGVO-Fall?
Die Malware lädt einen Python-basierten Infostealer (OmniStealer) nach, der gezielt Entwickler-Zugangsdaten, Browser-Daten und Krypto-Wallets abgreift. Da dabei sehr wahrscheinlich auch Zugänge zu Cloud-Diensten und Datenbanken mit personenbezogenen Daten kompromittiert werden, besteht nach Art. 33 DSGVO eine Meldepflicht an die Aufsichtsbehörde binnen 72 Stunden. Bei hohem Risiko müssen zudem betroffene Personen gemäß Art. 34 DSGVO informiert werden.
Ich habe die Pakete nicht mehr in der Registry gefunden – bin ich damit sicher?
Nicht unbedingt. Die bösartigen Versionen wurden zwar gegen 21:00 UTC am 28. Juli 2026 aus der npm-Registry entfernt, können aber weiterhin in Caches, Mirrors und bereits erstellten Build-Images vorhanden sein. Prüfen Sie daher Ihre lokalen Lockfiles und Build-Umgebungen und suchen Sie in CI/CD-Logs nach Verbindungen zu IP-Adressen wie 166.88.134.62 oder API-Aufrufen zu api.trongrid.io und bsc-dataseed.binance.org.
Weitere Security-News
Das könnte Sie auch interessieren
Kritische Elementor-Pro-Lücke: Angreifer können WordPress-Seiten komplett übernehmen
Ein Datei-Upload-Bug in Elementor Pro bis 4.2.1 erlaubt RCE ohne Login. Version 4.2.2 schließt die Lücke – jetzt aktualisieren!
Pods-Plugin: Kritische Lücke erlaubt Admin-Übernahme ohne Login
Eine kritische Schwachstelle im WordPress-Plugin Pods lässt Angreifer ohne Login Admin-Passwörter überschreiben. Über 100.000 Sites betroffen.
miniOrange SAML SSO: Kritischer Bypass macht Angreifer zu WordPress-Admins
Zwei kritische Auth-Bypässe im miniOrange SAML SSO Plugin erlauben gefälschte SAML Assertions – bis hin zum vollen Admin-Zugriff.