Sebuah worm npm bernama testmetest ternyata tidak berhenti di paket npm. Peneliti JFrog melaporkan pada 26 Oktober 2026 bahwa pelakunya juga memasang pemicu di 42 repositori GitHub milik 11 pemilik, sehingga cukup membuka proyek di alat pengodean AI atau editor untuk menjalankan muatan berbahaya. Ostorlab menerbitkan ringkasan menyeluruh pada 30 Oktober.
Dari paket npm ke repositori GitHub
SafeDep pertama kali mendokumentasikan paket npm kampanye ini pada 22 Oktober 2026. Menurut hitungan SafeDep yang dikutip Ostorlab, ada 62 versi dari 19 paket yang dipublikasikan lewat empat akun penerbit. Worm ini mencuri kunci SSH, token registri paket, rahasia layanan cloud dan Kubernetes, serta kredensial alat AI. Lalu ia menerbitkan dirinya sendiri sebagai versi paket baru.
Tim JFrog menemukan sisi GitHub-nya. Repositori yang terdampak berisi berkas konfigurasi untuk Claude, Gemini, Cursor, dan VS Code. Berkas itu berjalan saat sesi dimulai atau folder dibuka. Ada pula berkas pembungkus berukuran 12,9 sampai 13,7 MB yang semuanya mengarah ke muatan penerbit tersembunyi yang sama. Pencarian kode GitHub tidak mengindeks berkas sebesar itu, dan API konten tidak bisa mengembalikannya. Pencarian awal hanya menemukan 26 repositori. Setelah JFrog menelusuri pohon Git secara langsung, angkanya naik menjadi 42. InfoWorld menulis bahwa pengamanan GitHub sendiri tidak dibobol, yang bocor adalah pertahanan di sisi pengguna.
Varian yang melewati ignore-scripts
Ostorlab menguraikan tiga pemicu. Yang pertama memanfaatkan berkas binding.gyp saat build, yang kedua skrip postinstall yang memuat addon native, dan yang ketiga dropper yang berjalan saat paket diimpor. Menurut Ostorlab, dropper ketiga muncul sejak 27 Oktober dan tidak terhalang opsi ignore-scripts di npm. Keterangan tentang varian ini baru kami temukan di satu sumber, jadi perlakukan sebagai temuan Ostorlab, bukan fakta yang sudah dikonfirmasi pihak lain. Muatan juga dilaporkan diam di mesin CI, kontainer, dan sandbox analisis, sehingga pemindai otomatis bisa melihat paket tampak bersih.
Ada satu jebakan pemulihan. Ostorlab dan Corgea sama-sama menyebut worm memasang layanan bernama net-health-checker yang akan menghapus direktori home pengguna bila token GitHub curian dicabut selagi layanan itu masih ada. Pelaku juga memakai akun yang dibajak dan tanggal commit yang dipalsukan.
Yang perlu dilakukan pengembang
Rekomendasi Ostorlab dan JFrog mirip. Anggap instalasi versi worm penuh sebagai kompromi mesin. Putuskan jaringan mesin itu, hapus layanan persistensi lebih dulu, baru putar ulang semua kredensial yang bisa dijangkau: Git, registri paket, cloud, SSH, Kubernetes, dan penyedia AI. Periksa repositori Anda untuk berkas .claude/settings.json, .cursor/mcp.json, dan .vscode/tasks.json yang tidak Anda tulis, cabang bernama chore/ci-*, dan commit berpenanda skip-checks:true. JFrog menyarankan menelusuri pohon repositori lewat API Git, bukan mengandalkan pencarian kode GitHub. Setelah itu bangun ulang sistem operasinya, karena berkas yang ditemukan mungkin bukan seluruh infeksi.
Kasus ini berdekatan dengan ekstensi Claude Code palsu di marketplace Cursor yang kami laporkan sebelumnya: dua kejadian dalam sepekan yang menyasar alat pengodean AI. Bagi tim di Indonesia, langkah paling praktis hari ini adalah mengecek lockfile terhadap daftar paket di laporan SafeDep dan Ostorlab, lalu memindai repositori sendiri untuk berkas konfigurasi alat AI yang asing.
Sumber: JFrog Security Research, Ostorlab, InfoWorld. Gambar: JFrog Security Research
