GhostAction proširio krađu kredencijala na VS Code i lažne fontove

Akteri kampanje GhostAction postavili su drugi stepen napada u 94 kompromitovana GitHub repozitorijuma kod 66 vlasnika: VS Code datoteku tasks.json, lažni font public/fonts/fa-solid-400.woff2 sa kradljivcem kredencijala i dodatni GitHub Actions workflow. Komponenta se pojavila nakon što je GitHub 9. oktobra 2026. počeo da sprečava izvršavanje prvobitnog zlonamernog workflowa.
Napad je prešao granicu kompromitovanog CI procesa. Cilj je da se zadrži pristup razvojnoj stanici i nakon uklanjanja workflowa iz repozitorijuma, pa incident obuhvata i lokalna okruženja programera koji otvore klonirani projekat u Visual Studio Code-u.
Phishing i OAuth pristup repozitorijumima
OpenSourceMalware je zabeležio domen my-github.com, registrovan 9. oktobra i usmeren na IP adresu 193.32.204.199, koja služi i za prijem podataka iz zlonamernog workflowa. Istog dana korišćen je u poruci sa adrese noreply@my-github.com, koja se predstavljala kao GitHub bezbednosno upozorenje o prijavi iz Moskve.
Lažna stranica radi kao reverzni proksi: prikuplja lozinku i 2FA kod, a ugrađeni JavaScript automatski prolazi GitHub OAuth device flow. Time se odobrava aplikacija sa opsezima repo, workflow i read:org. Takav token omogućava čitanje i upis u repozitorijume, izmene Actions workflowa i uvid u članstvo i povezane organizacione podatke.
Automatizacija je posebno značajna zato što žrtva ne mora ručno da unese kod uređaja niti svesno odobri OAuth aplikaciju. Ukradeni token može da posluži za nabrajanje repozitorijuma i ubacivanje workflow datoteka u direktorijum .github/workflows/.
Lažni font kao pokretač trajnog pristupa
Datoteka tasks.json koristi okidač runOn: folderOpen, pa Visual Studio Code može da pokrene sadržaj kada korisnik otvori folder. Fajl nazvan fa-solid-400.woff2 zapravo je kradljivac koji traži AWS ključeve, PyPI i npm tokene, GitHub prijave, Kubernetes kredencijale, SSH privatne ključeve i podatke za Anthropic Claude i Google Gemini.
Nakon prikupljanja podataka, stealer instalira cron posao za pokretanje koda napadača na svakih pet minuta i šalje prikupljene podatke preko običnog HTTP-a na portu 8080. Drugi workflow služi kao rezerva ako se stealer ne izvrši; traži dodatne formate kredencijala i, kada slanje ne uspe, nalaze postavlja u tajni GitHub gist.
Šta timovi treba da urade
Od 94 obuhvaćena repozitorijuma, 15 je obrisano, preimenovano ili privatizovano. Među 79 i dalje dostupnih, 65 nije dobilo commit duže od godinu dana, što pokazuje koliko zapušteni projekti mogu ostati kanal rizika za korisnike koji ih kloniraju.
Praktičan odgovor je opoziv GitHub pristupa i tokena sa čistog uređaja, promena lozinki, provera repozitorijuma i rotacija svih tajni do kojih su workflowi mogli da dođu. Timovi treba da obaveste i korisnike koji su klonirali zahvaćene projekte, jer uklanjanje zlonamernog workflowa samo po sebi ne uklanja lokalni drugi stepen napada.

