Nach Angaben von Socket, Ox Security und StepSecurity nutzten die Angreifer ein kompromittiertes GitHub-Konto eines legitimen Mitwirkenden, um verdächtige Commits einzuspielen und kurz darauf die manipulierte Version 1.20.21 von @injectivelabs/sdk-ts auf npm zu veröffentlichen. Das Injective SDK ist ein TypeScript-/JavaScript-Entwicklungspaket für Anwendungen auf der Injective-Blockchain, einer Layer-1-Blockchain mit Schwerpunkt auf dezentralen Finanzanwendungen, tokenisierten Vermögenswerten und dezentralen Börsen.
Das Paket verzeichnet auf npm 50.000 wöchentliche Downloads. Laut Quelltext wird es von Entwicklern eingesetzt, die Krypto-Wallets, Trading-Bots, dezentrale Börsen, DeFi-Anwendungen und Zahlungstools bauen. Die Angreifer veröffentlichten außerdem für 17 weitere projektbezogene Pakete ebenfalls die Version 1.20.21 und banden sie damit an die kompromittierte SDK-Version.
Der legitime Kontoinhaber erkannte die Kompromittierung innerhalb weniger Minuten, setzte die Änderungen zurück und stellte mit Version 1.20.23 eine saubere Fassung bereit. Damit war der Vorfall aber nicht erledigt. Socket zufolge wurde die schädliche Version 310 Mal heruntergeladen, bevor sie als veraltet markiert wurde. Entfernt wurde sie nicht. Außerdem sind die bösartigen GitHub-Release-Artefakte laut Socket weiterhin verfügbar.
Die eigentliche Schadfunktion war an die Nutzung bestimmter SDK-Funktionen gekoppelt. Wie die Forscher erklären, wurde die Malware aktiv, wenn Entwickler Funktionen zum Generieren oder Importieren von Wallet-Schlüsseln aufriefen. Dann erfasste sie die vollständige mnemonische Seed-Phrase und den privaten Schlüssel, kodierte die Daten in Base64 und leitete sie per HTTP-POST an einen öffentlichen Infrastruktur-Endpunkt von Injective Labs weiter, damit der Datenverkehr legitim erscheint.
StepSecurity berichtet, dass die Malware die abgegriffenen Geheimnisse nicht sofort übertrug. Stattdessen sammelte sie mehrere Schlüssel und Mnemonics für zwei Sekunden, bündelte sie im Header der HTTP-Anfrage und verschickte sie dann. Nach Einschätzung der Forscher könnten Angreifer mit der mnemonischen Phrase oder dem privaten Schlüssel Wallets der Betroffenen auf eigene Geräte übernehmen und auf deren digitale Vermögenswerte zugreifen, sie nutzen oder übertragen.
Auch die mögliche Reichweite ist erheblich. Die Forscher weisen darauf hin, dass das Paket auf npm 87 direkte Abhängigkeiten hat und sehr wahrscheinlich weitere transitive Abhängigkeiten hinzukommen. Ein Bericht von Ox Security warnt, dass diese 87 abhängigen Pakete zusammen auf etwas mehr als 112.000 Downloads kommen.
Für Entwickler, die eine Kompromittierung vermuten, nennt der Quelltext konkrete Schritte: Sie sollten ihre Kryptowährungen in neue Wallets übertragen und sämtliche Geheimnisse in ihrer Umgebung austauschen.
