Im Zentrum des Vorfalls steht eine manipulierte Ausgabe des Pakets @injectivelabs/sdk-ts@1.20.21. Nach Darstellung von Socket war darin eine angebliche Telemetrie integriert, die Daten aus Kryptowallets an einen externen Server abfließen ließ. Der Schadcode wurde nicht über Installationsroutinen ausgelöst, sondern erst dann, wenn Entwickler die Bibliotheksfunktionen tatsächlich nutzten. Gerade weil auf Lifecycle-Skripte verzichtet wurde und die Aktivierung nicht bei der Installation erfolgte, konnte die Funktion unauffälliger bleiben.
Konkret wurde nach Angaben von Socket in legitime Funktionen eingegriffen, die in Arbeitsabläufen zur Erzeugung privater Schlüssel verwendet werden. Die manipulierte Version rief dabei eine Funktion namens „trackKeyDerivation()“ auf, getarnt als Mechanismus zur Erfassung anonymisierter Nutzungsmetriken für die Optimierung des SDK. In der Beschreibung dieser vermeintlichen Telemetrie hieß es, sie verfolge, welche Methoden zur Schlüsselableitung verwendet werden, und leite Zeitmuster ab, um Leistungsengpässe und die Nutzung verschiedener Schlüsselformate besser zu verstehen. Die Metriken würden „nebenbei“ erfasst und die Schlüsselableitung nicht blockieren oder beeinflussen.
Tatsächlich übergab die Funktion laut Socket nicht nur einen fest codierten Marker zur verwendeten Methode der Schlüsselerzeugung, sondern auch genau jene sensiblen Informationen, die zur Erzeugung des privaten Schlüssels benötigt werden. Das erfasste Material reiche aus, damit die Angreifer den privaten Schlüssel auf ihrer Seite erneut erzeugen können.
OX Security beschreibt die Logik noch direkter: Die Malware ergänze ein Krypto-Wallet-Paket um Funktionen zum Diebstahl von Wallet-Daten. Immer wenn ein legitimer Nutzer die Logik zur Verarbeitung von Mnemonic-Phrasen verwende, lese die Malware diese Phrasen aus und sende sie an einen entfernten Server. Mnemonic-Phrasen seien dabei im Wesentlichen der Hauptschlüssel einer Kryptowallet.
Um die Zahl ausgehender Verbindungen zu verringern, bündelte der Exfiltrationsmechanismus nach Angaben des Berichts mehrere Schlüsselableitungen innerhalb eines Zwei-Sekunden-Fensters in einer Warteschlange. Anschließend wurden sie gesammelt per HTTPS-POST in einem einzelnen Beacon an den externen Server testnet.archival.chain.grpc-web.injective[.]network übermittelt.
Socket zufolge beschränkte sich der Angriff nicht auf das eigentliche SDK. Die Angreifer veröffentlichten Version 1.20.21 auch in 17 weiteren Paketen mit dem Präfix @injectivelabs, die die manipulierte SDK-Ausgabe als feste Abhängigkeit referenzierten. Damit gerieten auch transitive Nutzer ins Risiko, selbst wenn sie die Bibliothek nicht direkt installiert hatten.
StepSecurity erklärte, die bösartige Veröffentlichung sei über die eigene Trusted-Publisher-Pipeline des Repositories auf Basis von OIDC ermöglicht worden. Die schädlichen Commits seien unter der Identität eines vorhandenen, vertrauenswürdigen Maintainers mit dem Namen „thomasRalee“ verfasst und eingespielt worden.
Nutzern, die die betroffene Version installiert haben, wird empfohlen, auf die inzwischen veröffentlichte saubere Version 1.20.23 zu aktualisieren. Außerdem sollten nach der Empfehlung alle privaten Schlüssel oder Mnemonic-Phrasen, die durch das Paket verarbeitet wurden, als kompromittiert behandelt und ausgetauscht werden; zusätzlich raten die Forscher zur Prüfung transitiver Abhängigkeiten.
