Der GhostAction-Betreiber hat seine Kampagne zur Kompromittierung von Repositories um ein Phishing-Kit und einen persistenten Zugangsdaten-Stealer erweitert, der sich als Web-Font tarnt. Das berichtet Die Darstellung der Befunde von OpenSourceMalware durch The Hacker News.
Die Forscher entdeckten die Komponente der zweiten Stufe in 94 Repositories, die 66 Eigentümern gehören. Diese Zahlen beschreiben Repositories und Eigentümer, nicht bestätigte Opfer oder gestohlene Zugangsdaten. Von den 94 Repositories waren 15 gelöscht, umbenannt oder auf privat gestellt; bei der Zählung blieben 79 zugänglich.
Der neue Ansatz knüpft an die frühere Nutzung bösartiger GitHub-Actions-Workflows an, mit denen GhostAction Projekte nach Geheimnissen durchsuchte. OpenSourceMalware berichtete, dass GitHub die Ausführung dieses Workflows ab dem 9. Oktober 2026 zu verhindern begann. Die Forscher behaupteten nicht, dass die Sperre die anschließende Änderung verursacht habe. Sie hielten es jedoch für wahrscheinlich, dass der Betreiber die Ausführung in Bereiche verlagert hat, die außerhalb dieser Workflow-Kontrollen liegen.
Phishing erfasst Zugangsdaten und autorisiert einen OAuth-Device-Flow
Die Phishing-Infrastruktur basiert auf my-github[.]com, registriert am 9. Oktober 2026 und aufgelöst auf 193.32.204[.]199. Dieselbe IP-Adresse soll auch als Exfiltrationsendpunkt für den Workflow der ersten Stufe von GhostAction gedient haben.
Am 9. Oktober erreichte eine E-Mail von noreply@my-github[.]com einen Maintainer eines Open-Source-Projekts. Sie gab sich als GitHub-Sicherheitshinweis aus, behauptete, jemand habe sich aus Moskau, Russland, angemeldet, und leitete den Empfänger auf einen Link weiter, der als Möglichkeit zur Absicherung des Kontos dargestellt wurde.
OpenSourceMalware beschrieb das Phishing-Kit als Reverse-Proxy, der sowohl das Kontopasswort als auch den Code der Zwei-Faktor-Authentifizierung des Opfers abfangen kann. Außerdem schleust es JavaScript in die weitergeleitete Sitzung ein, um einen GitHub-OAuth-Device-Flow mit drei Scopes zu autorisieren:
repo, das Zugriff auf Repositories gewährt;workflow, das Änderungen an den Workflow-Dateien von GitHub Actions erlaubt;read:org, das Informationen über die Mitgliedschaft in Organisationen offenlegt.
Das Kit automatisiert die Eingabe des Device-Codes und die Autorisierung, statt das Opfer aufzufordern, den Code einzutippen oder die Anwendung bewusst freizugeben. Das resultierende Zugriffstoken wird über TCP-Port 8443 an my-github[.]com gesendet.
Ein solches Token verschafft dem Betreiber ein wiederverwendbares API-Zugangstoken mit Berechtigungen, die zum beobachteten Verhalten von GhostAction passen: Auflisten von Repositories und Ablegen schädlicher Dateien unter .github/workflows/.
Eine verwandte Domain, my-gitlab[.]com, wurde 17 Tage vor my-github[.]com registriert. Forscher Paul McCarty erklärte, es gebe keine direkte Infrastrukturverbindung zu GhostAction. Die Domains unterschieden sich bei Registrierstellen, Registrierungsdaten, Cloudflare-Nameserver-Paaren, IP-Adressen, autonomen Systemen und DNS-Konfiguration. Es wurde weder ein gemeinsames Zertifikat noch ein gemeinsames Konto-Artefakt gefunden.
Stufe 2 läuft, wenn Entwickler ein Repository öffnen
Sechs Tage nach der gemeldeten Sperre des Workflows beobachteten die Forscher eine zweite Stufe, die drei Komponenten zu kompromittierten Repositories hinzufügt.
Die erste ist eine Visual-Studio-Code-Datei tasks.json, konfiguriert mit runOn: folderOpen. Dadurch wird die Nutzlast automatisch ausgeführt, sobald das Projekt in Visual Studio Code geöffnet wird.
Die zweite ist public/fonts/fa-solid-400.woff2. Trotz der Endung .woff2 und des schriftartähnlichen Pfads identifizierte OpenSourceMalware die Datei als Zugangsdaten-Stealer, der folgende Daten ins Visier nimmt:
- AWS-Schlüssel;
- PyPI- und npm-Token;
- Git-Zugangsdaten;
- Zugangsdaten für Kubernetes-Cluster;
- private SSH-Schlüssel;
- Zugangsdaten für Anthropic Claude und Google Gemini.
Nach dem Sammeln der Daten richtet die Nutzlast einen Cron-Job ein, der alle fünf Minuten vom Angreifer bereitgestellten Code ausführt. Gestohlenes Material wird unverschlüsselt über HTTP auf Port 8080 an denselben Server übertragen.
Der Dateiname der Schriftart tauchte außerdem im Januar 2026 in der PolinRider-Kampagne auf. Diese Überschneidung allein belegt jedoch nicht, dass GhostAction vom selben Akteur oder von Nordkorea betrieben wird.
Die dritte Komponente ist ein weiterer GitHub-Actions-Workflow, der eine alternative Ausführungsroute bieten soll, falls der lokale Stealer nicht läuft. Er behält die Kernlogik des ursprünglichen Workflows bei, ergänzt weitere Zugangsdatenformate und kann die Funde, falls sein HTTP-POST fehlschlägt, in einem geheimen GitHub-Gist ablegen.
Beobachtete Dateinamen von Workflows sind unter anderem:
lint.ymlci-check.ymlbuild-check.ymlrepo-health.ymlaudit.ymlcode-review.ymltest-suite.ymlcache-cleanup.yml
OpenSourceMalware verzeichnete außerdem Wellen des Workflows der ersten Stufe am 10. und 12. Oktober 2026. Laut Bericht extrahierten diese Wellen jedoch keine Geheimnisse.
Viele exponierte Repositories waren inaktiv
Von den 79 Repositories, die zugänglich blieben, hatten 65 seit mehr als einem Jahr keinen Commit erhalten. Eines war seit über neun Jahren unberührt.
Inaktivität macht die schädlichen Dateien nicht unschädlich. Entwickler oder nachgelagerte Nutzer, die ein betroffenes Projekt klonen und in Visual Studio Code öffnen, könnten die Aufgabe folderOpen weiterhin auslösen. Die Anzahl der verfügbaren Repositories sagt außerdem nicht aus, wie viele Personen die Projekte geöffnet oder wie viele Zugangsdaten erfolgreich erbeutet wurden.
Der Mitbegründer von OpenSourceMalware, Jenn Gile, erklärte, der Betreiber sei weiterhin unbekannt, und hielt die Umsetzung für ein Zeichen von „begrenzter Erfahrung“. Sie verwies auf einen Filter für Umgebungsvariablen, der die meisten API-Schlüssel nicht erfasst, auf eine Suche im Home-Verzeichnis, die ein Timeout erreichen und ihre Ergebnisse verwerfen kann, und auf die Nutzung einer einzigen IP-Adresse für Phishing, Datenabfluss und Internet-Scanning.
Reaktionsschritte für Maintainer und Repository-Nutzer
OpenSourceMalware empfiehlt betroffenen Maintainern, den GitHub-Zugriff und die Token von einem sauberen Gerät aus zu widerrufen, Passwörter zu ändern und ihre Repositories auf unautorisierte Dateien und Workflow-Änderungen zu prüfen.
Zugangsdaten, die von den betroffenen Workflows erreichbar sind, sollten rotiert werden. Dazu gehören Repository-Geheimnisse sowie Cloud-, Paketregistrierungs-, SSH-, Kubernetes- oder KI-Anbieter-Zugangsdaten, die der Projektumgebung ausgesetzt waren. Maintainer sollten außerdem Personen informieren, die betroffene Repositories geklont haben, damit sie ihre Systeme prüfen und gegebenenfalls Zugangsdaten rotieren können.
Repository-Prüfungen sollten .github/workflows/, die Aufgabenkonfiguration von Visual Studio Code, den Pfad public/fonts/fa-solid-400.woff2 und die beobachteten Workflow-Dateinamen umfassen. Da der Stealer einen Cron-Job einrichtet, reicht das Entfernen der schädlichen Repository-Dateien allein möglicherweise nicht aus, um die Persistenz auf einem System zu beseitigen, auf dem die Nutzlast bereits ausgeführt wurde.




