Peretas Bisa Melewati Pertahanan Shai-Hulud npm Lewat Dependensi Git

Mekanisme pertahanan yang diterapkan npm pasca-serangan supply chain Shai-Hulud ternyata masih memiliki celah serius. Peneliti keamanan mengungkap bahwa aktor ancaman dapat melewati perlindungan tersebut dengan memanfaatkan dependensi berbasis Git, sehingga membuka peluang eksekusi kode berbahaya meskipun fitur pengamanan tertentu telah diaktifkan.
Rangkaian kelemahan ini secara kolektif dijuluki PackageGate dan ditemukan pada berbagai utilitas pengelola dependensi di ekosistem JavaScript, termasuk pnpm, vlt, Bun, dan npm. Temuan tersebut berasal dari peneliti di perusahaan keamanan endpoint dan supply chain Koi, yang kemudian melaporkannya kepada masing-masing vendor. Hampir seluruh tool terkait telah merilis perbaikan, kecuali npm yang menutup laporan dengan menyatakan bahwa perilaku tersebut “berjalan sesuai desain.”
Masalah ini berakar pada respons npm terhadap serangan Shai-Hulud yang pertama kali muncul pada September 2025. Serangan tersebut mengkompromikan ratusan paket dan kemudian berkembang dalam gelombang lanjutan yang jauh lebih besar, hingga berujung pada terbukanya ratusan ribu secret milik developer di puluhan ribu repositori otomatis. Insiden tersebut memicu npm dan GitHub untuk memperkenalkan langkah mitigasi tambahan guna memperkuat keamanan rantai pasok perangkat lunak.
Beberapa rekomendasi yang diperkenalkan antara lain menonaktifkan lifecycle scripts saat instalasi paket melalui parameter khusus, serta mendorong penggunaan lockfile integrity dan dependency pinning. Namun, penelitian terbaru menunjukkan bahwa pendekatan ini tidak sepenuhnya efektif.
Dalam skenario npm, peneliti menemukan bahwa ketika dependensi diinstal langsung dari repositori Git, file konfigurasi tertentu dapat digunakan untuk menimpa jalur biner Git. Akibatnya, eksekusi kode penuh tetap dapat terjadi meskipun opsi untuk menonaktifkan script instalasi telah diaktifkan. Temuan ini bukan sekadar teoretis, karena peneliti menyebut telah melihat bukti eksploitasi teknik serupa dalam bentuk proof-of-concept yang menghasilkan akses jarak jauh ke sistem.
Pengelola paket JavaScript lain juga tidak sepenuhnya luput. Pada pnpm dan vlt, peneliti menemukan mekanisme bypass berbeda yang memungkinkan eksekusi kode berbahaya, bahkan disertai dengan celah yang dapat melewati pemeriksaan integritas lockfile. Bun telah menutup celah yang memengaruhi produknya melalui pembaruan versi, sementara vlt dan pnpm juga merespons relatif cepat dengan merilis perbaikan keamanan untuk kerentanan yang teridentifikasi.
Sikap npm menjadi sorotan utama dalam laporan ini. Meski temuan telah diajukan melalui program bug bounty resmi, npm menolak laporan tersebut dan menegaskan bahwa tanggung jawab untuk memverifikasi isi paket berada di tangan pengguna. Peneliti menyatakan bahwa upaya tindak lanjut tidak mendapatkan respons lebih lanjut dari pihak npm.
GitHub, sebagai operator npm, menyampaikan bahwa mereka masih memantau situasi dan melakukan pemindaian aktif terhadap registry untuk mendeteksi malware. Mereka juga kembali menekankan pentingnya praktik keamanan tambahan, seperti trusted publishing, penggunaan token akses granular, serta penerapan autentikasi dua faktor untuk memperkuat ekosistem supply chain perangkat lunak.
Temuan ini menegaskan bahwa meskipun langkah-langkah mitigasi telah diperkenalkan, permukaan serangan dalam ekosistem paket JavaScript masih luas. Bagi organisasi dan developer, ketergantungan pada satu lapisan pertahanan tidak lagi memadai. Audit dependensi, pembatasan sumber instalasi, serta pemantauan berkelanjutan menjadi semakin krusial di tengah meningkatnya serangan supply chain yang semakin canggih.








