FlawOpen

flawopen.com/Incidents/tensorlake-npm-install-hook-compromise-october-2026

● Tensorlake · CWE-506 · October 8, 2026 · Kritis
Riset Keamanan · FlawOpen

Tensorlake npm 0.5.144: hook instalasi berbahaya

Rilis berbahaya Tensorlake AI SDK menambahkan loader preinstall. Maintainer mengonfirmasi perubahan langsung ke main dan memperketat proses publikasi; advisory malware GitHub meminta host tempat kode berjalan dianggap telah dikompromikan. Peneliti mengaitkan pola loader dengan keluarga ChainDrop/Shai-Hulud; advisory GitHub tidak mengonfirmasi atribusi tersebut.[1], [2], [3], [4], [5]

💡 Penjelasan Sederhana (ELI5)

Menginstal paket ini seperti menyambungkan perangkat yang langsung menyala: Anda tidak perlu menekan tombol atau menggunakannya. npm menjalankan hook preinstall berbahaya dengan izin proses pemasang sebelum siapa pun mengimpor SDK.[3], [6], [1]

Konsep Kunci & Istilah

hook siklus hidup preinstall
Skrip yang dapat dijalankan npm selama instalasi. Manifest Tensorlake 0.5.144 yang dipublikasikan memanggil loader melalui hook ini, tanpa perlu mengimpor SDK terlebih dahulu.[1], [6]
attestasi provenance
Bukti tentang asal dan proses build suatu artefak. Maintainer menyebut rilis berbahaya memiliki npm provenance; itu tidak membuktikan source code aman.[2], [3]
tripwire skrip instalasi
Pemeriksaan CI yang gagal jika manifest terbitan mendeklarasikan skrip instalasi. Setelah insiden, Tensorlake menambahkannya bersama npm ci --ignore-scripts.[3]
Atribusi keluarga kampanye
StepSecurity dan Socket mengaitkan pola loader dengan ChainDrop/Shai-Hulud. Advisory malware GitHub tidak menyebut keluarga kampanye; tulis hubungan ini sebagai atribusi peneliti.[4], [5], [1]

Pemetaan kerangka kerja

  • Referensi CWE untuk kelemahan yang dijelaskan dalam panduan ini: CWE-506

Kronologi Insiden

7 Oktober 2026

Respons insiden maintainer menyebut commit didorong langsung ke main oleh akun admin repositori.[2], [3]

8 Oktober 2026

Workflow rilis menerbitkan tensorlake@0.5.144 yang berbahaya; maintainer menyebut npm kemudian menghapusnya.[1], [2]

8 Oktober 2026

Maintainer menggabungkan PR #1016, memulihkan commit bersih terakhir, menambah kontrol skrip instalasi, dan menaikkan rilis bersih ke 0.5.145.[3], [7]

Alur Serangan Langkah demi Langkah

Langkah 1

Batas kepercayaan repositori dilewati

PR respons insiden melaporkan commit langsung ke main oleh akun admin, di luar proses tinjauan pull request normal. Publikasi kemudian dimulai secara manual dari repositori tersebut.[2], [3]

Langkah 2

Paket menjalankan kode saat instalasi

Peneliti menemukan hook preinstall yang menjalankan loader pada tensorlake@0.5.144. Kode mewarisi izin proses pemasang; pengguna tidak perlu mengimpor SDK terlebih dahulu.[1], [4], [5], [6]

Langkah 3

Kredensial dan persistensi host berisiko

Advisory malware GitHub menyatakan host terdampak harus dianggap sepenuhnya dikompromikan. StepSecurity dan Socket melaporkan pencurian kredensial serta persistensi, termasuk monitor yang dapat bereaksi secara merusak saat token dicabut. Atribusikan detail payload itu kepada peneliti; jangan menganggap semua kemampuan berjalan di semua host.[1], [4], [5]

Langkah 4

Maintainer memulihkan kontrol rilis

Respons membatalkan commit berbahaya, menambahkan npm ci --ignore-scripts dan tripwire manifest, memperketat perlindungan repositori dan publikasi, serta mengganti paket dengan 0.5.145. GHSA tidak mencantumkan versi yang ditambal karena advisory ini melacak malware, bukan rentang kode rentan biasa.[3], [7]

Kode Sumber: Rentan vs Aman

Perbandingan CI ini mengikuti PR #1016 yang digabung maintainer; ini bukan paket berbahaya atau exploit. Tripwire berjalan sebelum instalasi dan menolak hook instalasi di manifest terbitan; ignore-scripts mencegah npm ci menjalankan skrip siklus hidup dependensi. Maintainer menyatakan pengujian dan build SDK berhasil dengan pengaturan ini. Paket yang memerlukan hook dapat terdampak, sementara perintah yang dipanggil eksplisit seperti npm test tetap menjalankan skripnya. Isolasi tahap build berikutnya dan jangan menganggap provenance sebagai tinjauan source code. Cuplikan ini hanya sebagian: tripwire maintainer juga menolak file tak terduga di typescript/lib/, selain memeriksa deklarasi hook instalasi.[3], [6]

IMPLEMENTASI RENTAN
steps:
  - run: npm ci
PERBAIKAN AMAN & KUAT
steps:
  - run: node scripts/check-no-install-scripts.mjs
  - run: npm ci --ignore-scripts

Daftar Periksa Penguatan Sistem Rekayasa

Sumber