Penjelasan teknis
Pembaruan kampanye Mini Shai-Hulud yang pertama kali dilaporkan 13 Mei: pada 18 Mei 2026, aktor ancaman mendorong 5.718 komit berbahaya ke 5.561 repositori GitHub publik dalam jendela enam jam menggunakan Personal Access Token yang dikompromikan dan deploy key. Berbeda dengan gelombang pemoisonan paket npm sebelumnya, fase Megalodon ini menargetkan file alur kerja CI/CD GitHub Actions secara langsung, menyuntikkan payload bash yang dikodkan base64 dirancang untuk mencuri rahasia CI, kredensial cloud (AWS, GCP, Azure), kunci SSH, token GitHub OIDC, rahasia kode sumber, dan string koneksi database — mengeksfiltrasi semuanya ke C2 di 216.126.225.129:8443. Pada 26 Mei, sekitar 2.900 repositori tetap terinfeksi, berarti 83% dari repositori yang dikompromikan belum dibersihkan lebih dari seminggu setelah penemuan. Penelitian terpisah menghubungkan kampanye Megalodon dengan TeamPCP, kelompok di balik Shai-Hulud.
Vektor serangan
PAT pengembang yang dikompromikan atau deploy key yang digunakan untuk mendorong komit berbahaya langsung ke cabang main/master tanpa pull request. Dua varian payload dikerahkan: SysDiag (dipicu pada setiap push/PR) dan Optimize-Build (menggunakan workflow_dispatch untuk backdoor laten yang tidak meninggalkan CI run yang terlihat). Token OIDC dipanen untuk menyamar sebagai pipeline CI/CD sah di AWS, GCP, atau Azure.
Sistem yang terdampak
5.561 repositori GitHub publik termasuk proyek dari Tiledesk, WIZnet, persian-tools, dan lainnya. Paket npm yang dipublikasikan dari repositori yang diracuni membawa backdoor ke hilir. Varian backdoor laten Optimize-Build tidak terlihat dalam riwayat CI sampai dipicu oleh penyerang.
Mitigasi
Audit direktori .github/workflows/ untuk modifikasi tidak sah pada atau setelah 18 Mei 2026 — cari komit dari handle GitHub berkarakter 8 yang tidak dikenal (mis. rkb8el9r) atau identitas palsu (build-bot, auto-ci, ci-bot). Cabut dan putar semua token CI/CD, PAT, dan deploy key. Cari hash komit IoC 'acac5a9' dan domain C2 216.126.225[.]129:8443. Verifikasi pekerjaan yang dipicu workflow_dispatch untuk payload yang disuntikkan. Haruskan aturan perlindungan cabang dan haruskan PR untuk push langsung ke cabang default.