Peneliti Wiz melaporkan kampanye otomatis bernama Gheist yang memakai token GitHub curian untuk mengambil secret dari repositori privat lewat log GitHub Actions. Wiz menemukan lebih dari 13.500 branch berbahaya yang berasal dari lebih dari 850 akun GitHub yang disusupi, mulai dari proyek pribadi sampai repositori privat milik organisasi besar.
Cara kerja kampanye
Nama Gheist berasal dari user agent yang dikirim alat penyerang saat memanggil API GitHub. Penyerang memakai token curian untuk mendorong sebuah workflow ke repositori yang bisa dijangkau token itu. Workflow tersebut mencetak secret repositori ke log Actions. Penyerang lalu mengunduh log dan menghapus run-nya dalam hitungan detik.
Karena data keluar lewat GitHub sendiri, tidak ada server penyerang atau koneksi keluar yang bisa diblokir tim keamanan. Di organisasi perusahaan, alat ini bergantian memakai token beberapa pengguna dan akun otomatisasi dalam hitungan menit, lalu mengkloning repositori privat sebelum menanam workflow. Beberapa jam kemudian, kredensial cloud dari organisasi yang sama dipakai untuk menjelajahi AWS Secrets Manager. Wiz tidak menyebut dari mana kredensial itu berasal.
Siapa yang terdampak
Token yang dipakai berasal dari log infostealer dan dari token yang terekspos dalam serangan rantai pasok sebelumnya, misalnya kompromi scanner Trivy pada Maret 2026. Kebocoran token memang sudah beberapa kali menjadi pintu masuk, termasuk pada pipeline rilis LiteLLM. Kasus ini tidak punya nomor CVE karena penyerang menyalahgunakan token yang sah, bukan celah perangkat lunak.
Sejak 28 Juli 2026, GitHub menahan workflow mencurigakan di repositori publik sampai kolaborator menyetujuinya. Semua run Gheist di repositori publik tertahan dengan status action_required, sehingga payload tidak pernah berjalan. Penahanan itu tidak mencakup repositori privat dan GitHub Enterprise Server, dan di sanalah Wiz melihat eksploitasi serta aktivitas lanjutan. Wiz mulai melacak kampanye ini sejak 15 September. Per 24 Oktober kampanye masih berjalan, dan sekitar dua pertiga akun yang terlibat sudah tidak tersedia di GitHub. Wiz menduga itu respons GitHub. Wiz belum mengungkap berapa organisasi yang secret-nya benar-benar bocor.
Langkah yang perlu diambil
Wiz menyarankan tim memeriksa audit log GitHub untuk branch berawalan ci-sync-, run yang dihapus dalam waktu kurang dari semenit, dan aktivitas user agent gheist. Jika ada indikasi kompromi, rotasi semua secret yang bisa diakses repositori terdampak. Menghapus run atau branch tidak membatalkan paparan secret. Cabut token yang dipakai untuk mendorong commit dan periksa perangkat pemiliknya dari infostealer. Anggap self-hosted runner beserta instance role cloud-nya ikut terkompromi, dan jangan menyetujui run sync-check yang tertahan.
Untuk mengurangi dampak token curian, Wiz menganjurkan reviewer wajib pada environment yang menyimpan secret produksi, kebijakan kepercayaan OIDC yang dibatasi ke branch atau environment terlindungi, serta GitHub App atau token fine-grained berumur pendek sebagai pengganti personal access token. Self-hosted runner sebaiknya berjalan sebagai mesin sementara tanpa akses Docker socket dan tanpa akses bebas ke metadata cloud. Tim di Indonesia yang menyimpan kunci produksi di secret GitHub Actions perlu memeriksa ini lebih dulu.
Sumber: Wiz dan The Hacker News. Gambar: Wiz
