Socket zufolge betrafen die neuesten bösartigen npm-Releases Pakete für LeoPlatform und RStreams. Die Forscher vermuten, dass das mit LeoPlatform verbundene npm-Entwicklerkonto „czirker“ kompromittiert wurde, wahrscheinlich über offengelegte Zugangsdaten. Dadurch konnten die Angreifer demnach ein npm-Token des Maintainers nutzen, um innerhalb eines Zeitfensters von sechs Sekunden trojanisierte Versionen zu veröffentlichen.

Die manipulierten npm-Pakete verzichten zwar auf den sonst häufig über package.json eingebundenen Lifecycle-Hook, enthalten laut Socket aber eine binding.gyp-Datei. Diese sorgt bei der Installation für die Ausführung beliebigen Codes. Dadurch wird ein JavaScript-Loader gestartet, der zunächst die Bun-Laufzeitumgebung nachlädt, falls sie nicht vorhanden ist, und anschließend den Stealer ausführt, der Geheimnisse, Zugangsdaten und Tokens abgreift.

Die Malware besitzt laut den Forschern einen Killswitch für russische Gebietsschemata und prüft außerdem, ob Endpunktschutzsoftware vorhanden ist. Zusätzlich legt sie einen Workflow mit dem Namen „Run Copilot“ ab, um Geheimnisse aus CI/CD-Umgebungen direkt aus dem Speicher des Runners zu erfassen. Die erbeuteten Informationen werden anschließend in ein öffentliches GitHub-Repository hochgeladen, das mit der Beschreibung „Na gut, sehen wir mal, ob das funktioniert“ versehen ist. Zum Zeitpunkt der Veröffentlichung gab es 559 Repositories mit genau dieser Beschreibung.

Auch ein Marker für den Token-Relay wurde geändert. Während frühere Wellen Zeichenfolgen wie „Wenn du dieses Token ungültig machst, wird der Computer des Besitzers zerstört“ nutzten, verwendet die aktuelle Variante „Entziehe es, und es kracht“. Diese Zeichenfolge wurde als GitHub-Dead-Drop-Resolver auch im Zusammenhang mit der jüngsten Kompromittierung der GitHub Action „codfish/semantic-release-action“ verwendet.

StepSecurity berichtete, dass ein Angreifer einen bösartigen Commit per Force-Push in „codfish/semantic-release-action“ eingebracht und mehrere Versions-Tags auf diesen Commit umgebogen hat. Jeder Workflow, der danach gegen einen dieser Tags lief, führte laut StepSecurity die Nutzlast des Angreifers direkt im GitHub-Actions-Runner aus. Diese stiehlt GitHub-OIDC-Tokens, sammelt Personal Access Tokens anhand bekannter GitHub-Tokenmuster, verschlüsselt das gesammelte Material mit AES-128-GCM und versucht, mit den erbeuteten Zugangsdaten eine Hintertür in weitere erreichbare Repositories zu verbreiten.

Nach Einschätzung des Berichts deuten die Überschneidungen darauf hin, dass diese Vorfälle demselben operativen Cluster oder derselben Werkzeuglinie zuzuordnen sind. Endor Labs und OX Security zufolge fragt die Malware außerdem stündlich GitHub nach Commits mit der Zeichenfolge „firedalazer“ ab, um die Hades-Variante der Malware nachzuladen und auszuführen.

JFrog weist darauf hin, dass die Leo-/RStreams-Pakete in cloud-nativen und serverlosen Workloads eingesetzt werden. Darüber könne eine Kompromittierung Entwickler-Arbeitsplätze, CI/CD-Systeme, auf AWS basierende Anwendungen, GitHub-Repositories, Zugangsdaten zum Veröffentlichen von Paketen und nachgelagerte Paketnutzer betreffen.

Mit der Vergiftung des Verana-GitHub-Projekts weitet sich die Kampagne zudem über npm hinaus aus. Socket betont, dass diese Variante zwar nicht auf binding.gyp setzt, aber dasselbe Miasma-Ausführungsmuster wie die bösartigen npm-Pakete verwendet. Das Risiko liege hier in der Ausführung aus dem Quell-Repository: Wer das Repository klont oder es in einer vertrauenswürdigen IDE oder in einer KI-Coding-Assistant-Umgebung öffnet, kann die Nutzlast über die Projektkonfiguration auslösen. Damit zielt die Kampagne laut Socket nicht nur auf Installations-Hooks von Paketmanagern, sondern auf Entwickler-Workflows insgesamt.