wfx-loot war eine Kampagne zum Diebstahl von Zugangsdaten. Die Angreifer nutzten kompromittierte GitHub-Konten, um Repositories zu prüfen und dort, wo sie Schreibrechte hatten, Code einzuschleusen, der Geheimnisse aus CI-Umgebungen abgriff. Aikido zählte 4.837 kompromittierte Konten und Pull Requests in 61.764 Repositories. Laut der veröffentlichten Auswertung lief die Schadsoftware in mindestens 1.835 Repositories und übermittelte Zugangsdaten an die Angreifer.
4
9
Wann lief wfx-loot – und wie lange?
Die Aktivität begann am 10. November 2026 gegen 12:45 UTC. Ein Bericht setzt das Ende des beobachteten Zeitfensters für die Test-Pull-Requests auf 11. November um 15:00 UTC – etwa 26 Stunden und 15 Minuten später.
6
7 Das beschreibt den Zeitraum der beobachteten Tests, nicht den Nachweis, dass danach sämtliche Schadcode-Ausführung oder eine spätere Nutzung gestohlener Zugangsdaten endete.
Die Zahlen zur Kampagne beziehen sich auf unterschiedliche Phasen:
- 4.837 Konten wurden als kompromittiert gemeldet.
- 61.764 Repositories erhielten Test-Pull-Requests. Das ist die Zahl der geprüften Repositories, nicht die Zahl der nachweislich infizierten.
- Mindestens 1.835 Repositories nennt Aikidos veröffentlichte Auswertung für ausgeführten Schadcode und den Abfluss von Zugangsdaten.
9
Einige zeitnahe Berichte nannten zunächst eine niedrigere Zahl von 1.806.
6
10 Die verfügbaren Berichte erklären die Abweichung nicht; die Zahlen sollten daher als unterschiedliche veröffentlichte Zwischenstände behandelt und nicht zusammengerechnet werden. Auch eine spätere Behauptung von rund 1.970 bestätigten öffentlichen Fällen unter mehr als 66.000 Zielen wird durch die vorliegenden Berichte nicht belegt.
So prüften die Angreifer den Zugriff
Die Angreifer eröffneten Pull Requests mit dem Titel docs: dependency audit notes und nutzten Branches namens wfx-docs. Diese Anfragen dienten als Test: Sie sollten zeigen, ob ein kompromittiertes Konto Schreibrechte im jeweiligen Repository hatte.
3
4
9
Wo die Berechtigungen ausreichten, schleusten die Angreifer Schadcode in die CI-Umgebung ein, um dort gespeicherte Geheimnisse zu stehlen. Die Kampagne missbrauchte gültige, gestohlene Zugangsdaten – sie beruhte nicht auf einer Schwachstelle in GitHub Actions.
4
9 OX Security beschreibt die Schadsoftware als einzelnes Shell-Skript mit etwa 1.500 Zeilen.
31
Berichten zufolge wurden in einigen Fällen schädliche Änderungen und Workflow-Protokolle wieder entfernt, was die Untersuchung erschwerte.
1
6 Die vorliegenden Belege stützen das allgemeine Muster aus Zugriffstests, Schadcode-Ausführung und anschließender Bereinigung. Sie belegen jedoch nicht, dass jede beschriebene Verteilungsmethode oder jede Commit-Nachricht bei jedem Angriff zum Einsatz kam.
Auf welche Zugangsdaten zielte der Schadcode?
Das dokumentierte Ziel war, Zugangsdaten abzugreifen, auf die CI-Jobs zugreifen konnten – darunter GitHub-Actions-Secrets und Cloud-Zugangsdaten. Berichte beschreiben außerdem Versuche, Tokens für KI-Dienste zu erlangen.
3
9 OX Security führt Zugangsdaten für AWS, Azure und Google Cloud als Ziele auf.
31 Ein weiterer Bericht zufolge konnte die Schadsoftware den Arbeitsspeicher von Runner-Prozessen nach Geheimnissen durchsuchen. Aus den vorliegenden Auszügen geht allerdings nicht hervor, wie oft diese Methode erfolgreich war.
17
29
Eine zusammengetragene Zusammenfassung beschreibt Versuche, den Zugriff über Änderungen an AWS-Vertrauensrichtlinien und föderierte Azure-Zugangsdaten auszuweiten.
5 Das ist als berichtetes Vorgehen zu verstehen, nicht als Beleg dafür, dass jedes betroffene Repository – oder jedes damit verbundene Cloud-Konto – verändert wurde. Die Belege konzentrieren sich auf den Diebstahl von Zugangsdaten; ein Diebstahl von Quellcode oder Kundendatenbanken ist damit nicht nachgewiesen.
9
15
Was die gemeldeten Hinweise aussagen – und was nicht
Ein Bericht gab an, dass bei der Prüfung noch 92 Prozent der 10.431 Test-Pull-Requests offen waren, die über Collaborator- oder Organisationszugriffe eingereicht worden waren.
10
19 Das deutet darauf hin, dass viele dieser Anfragen bis dahin nicht bearbeitet worden waren. Es beweist aber nicht, dass Verantwortliche oder Sicherheitsteams sie nicht bemerkt hatten. Der Prozentwert bezieht sich zudem nicht auf sämtliche Pull Requests der Kampagne.
Ein Untersuchungsleitfaden meldete außerdem 173 Test-Pull-Requests von 19 Konten, die Tokens über die GitHub App von Fly.io verwendeten. Diese Beobachtung belegt für sich genommen weder einen Einbruch in Fly.ios Infrastruktur noch, dass der Schadcode in jedem über diese Tokens erreichten Repository ausgeführt wurde.
37
Was betroffene Teams prüfen sollten
Bei einem möglichen Vorfall sollten Teams klar zwischen Repository geprüft, Schadcode eingeschleust, Schadcode ausgeführt und Zugangsdaten abgeflossen unterscheiden. Das sind unterschiedliche Befunde.
- Nach den Testmerkmalen suchen. Prüfen Sie Pull Requests mit dem Titel
docs: dependency audit notes und Branches namens wfx-docs in allen Repositories, in die Ihre Konten schreiben konnten.
9
- CI- und Audit-Daten kontrollieren. Untersuchen Sie Workflow-Läufe, Commits, Branch-Aktivitäten und verfügbare Cloud-Protokolle. Fehlende Nummern bei Workflow-Läufen können ein Hinweis sein, da Berichte von gelöschten Läufen und Protokollen sprechen. Eine Lücke allein beweist jedoch keinen Vorfall.
1
24
- Zugriffe sperren. Widerrufen Sie mutmaßlich kompromittierte GitHub-Tokens und überprüfen Sie Konten, Collaborator-Berechtigungen sowie Zugriffe über GitHub Apps.
- Erreichbare Geheimnisse rotieren. Wurde der Schadcode ausgeführt, behandeln Sie alle Secrets und Cloud-Rollen, auf die der Workflow zugreifen konnte, als potenziell kompromittiert – nicht nur Zugangsdaten, die noch in erhaltenen Protokollen auftauchen.
3
9
- Cloud-Änderungen untersuchen. Suchen Sie nach unerwarteten Änderungen an AWS-Vertrauensrichtlinien sowie an Azure-Anwendungen oder föderierten Zugangsdaten und prüfen Sie weitere nicht autorisierte Schlüssel oder Zugriffsänderungen.
5
- Beweise sichern. Bewahren Sie verbliebene Audit-Daten und Protokolle auf, bevor Sie Änderungen zur Bereinigung vornehmen. Dokumentieren Sie anschließend, welche Phase des Angriffs durch konkrete Belege gestützt wird.