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 Tokens yang dikompromikan dan kunci deploy. Tidak seperti gelombang pengracunan paket npm sebelumnya, fase Megalodon ini menargetkan file alur kerja CI/CD GitHub Actions secara langsung, menyuntikkan muatan bash yang dikodekan base64 dirancang untuk mencuri rahasia CI, kredensial cloud (AWS, GCP, Azure), kunci SSH, token GitHub OIDC, rahasia kode sumber, dan string koneksi basis data — mengalihkan semuanya ke C2 di 216.126.225.129:8443. Pada 26 Mei, sekitar 2.900 repositori tetap terinfeksi, berarti 83% repositori yang dikompromikan belum dibersihkan lebih dari seminggu setelah penemuan. Penelitian terpisah menghubungkan kampanye Megalodon ke TeamPCP, kelompok di balik Shai-Hulud.
Vektor serangan
PAT pengembang yang dikompromikan atau kunci deploy digunakan untuk mendorong komit berbahaya langsung ke cabang main/master tanpa permintaan pull. Dua varian muatan disebarkan: SysDiag (dipicu pada setiap push/PR) dan Optimize-Build (menggunakan workflow_dispatch untuk pintu belakang dorman yang tidak meninggalkan CI runs yang terlihat). Token OIDC dipanen untuk meniru saluran CI/CD yang 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 diterbitkan dari repositori yang diracuni membawa pintu belakang ke hilir. Varian Optimize-Build pintu belakang dorman tidak terlihat dalam riwayat CI sampai dipicu oleh penyerang.
Mitigasi
Audit direktori .github/workflows/ untuk modifikasi yang tidak sah pada atau setelah 18 Mei 2026 — cari komit dari handle GitHub 8 karakter yang tidak dikenal (misalnya rkb8el9r) atau identitas yang dipalsukan (build-bot, auto-ci, ci-bot). Cabut dan putar ulang semua token CI/CD, PAT, dan kunci deploy. Cari hash komit IoC 'acac5a9' dan domain C2 216.126.225[.]129:8443. Verifikasi pekerjaan yang dipicu workflow_dispatch untuk muatan yang disuntikkan. Perlukan aturan perlindungan cabang dan perlukan PR untuk push langsung ke cabang default.