Apa yang terjadi
JFrog menghubungkan 42 repositori GitHub pihak ketiga yang dipersenjatai di 11 pemilik sah ke kampanye npm testmetest. Rilis npm berbahaya menggunakan ekspansi perintah binding.gyp untuk mengeksekusi kode selama instalasi, mendekripsi payload yang mencuri kredensial GitHub dan npm, meracuni repositori dan konfigurasi CI, serta menanam hook eksekusi untuk asisten coding AI dan IDE — menyuntikkan hook SessionStart ke pengaturan Claude Code dan tugas ke VS Code. Sisi GitHub membawa wrapper polimorfik 12,9-13,7 MB dan penerbit tersembunyi yang dirancang untuk berjalan melalui GitHub Actions untuk menghasilkan rilis berbahaya lebih lanjut. Pengiriman selanjutnya beralih ke addon native yang telah dikompilasi (addon.node) yang mendekripsi file dotfile .napi_cache saat runtime untuk menjalankan payload asli, dengan pemeriksaan anti-CI/container.
Mengapa penting
Ini adalah worm supply-chain yang ditujukan langsung pada permukaan konfigurasi/hook agen coding AI (hook SessionStart, tugas VS Code, konfigurasi CI), mengubah instalasi paket/repo normal menjadi pencurian kredensial dan propagasi diri melalui registry yang sudah dipercaya pengembang. Ini mengekspos kelas serangan eksekusi agen dan sinyal kampanye aktif yang tidak dibawa oleh seed CVE.
Vektor serangan
Instalasi paket npm berbahaya (ekspansi perintah binding.gyp) atau penggunaan repo GitHub yang dibajak; payload mencuri kredensial GitHub/npm dan menyuntikkan hook SessionStart ke konfigurasi asisten coding AI, lalu menyebar ke repo/paket lebih lanjut.
Sistem yang terdampak
Ekosistem npm (paket keluarga testmetest, mis. event-bus-lite-testmetest, path-stream-utils-testmetest, paket helper @iobandamwer/*) dan repositori GitHub yang dibajak; permukaan konfigurasi Claude Code / VS Code / agen coding AI.
Mitigasi
Kunci dan audit dependensi, audit hook SessionStart dan tugas VS Code di repositori yang Anda klon, validasi token penerbitan tepercaya npm, pantau GitHub Actions untuk workflow penerbit tidak dikenal berumur pendek, dan perlakukan nama paket/pemilik keluarga testmetest sebagai indikator.