flawopen.com/Incidents/tensorlake-npm-install-hook-compromise-october-2026
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]
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]
Pemetaan kerangka kerja
- Referensi CWE untuk kelemahan yang dijelaskan dalam panduan ini: CWE-506
Kronologi Insiden
Alur Serangan Langkah demi Langkah
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]
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]
steps:
- run: npm cisteps:
- run: node scripts/check-no-install-scripts.mjs
- run: npm ci --ignore-scriptsDaftar Periksa Penguatan Sistem Rekayasa
- ✓Cari tensorlake@0.5.144 di manifest, lockfile, cache, dan catatan build. Advisory menyebut versi npm yang tepat ini; nama paket saja tidak membuktikan paparan.[1]
- ✓Jika instalasi berjalan, isolasi host dari jaringan dan amankan bukti. Menghapus dependensi saja tidak membuktikan persistensi atau perubahan lain telah hilang; bangun ulang dari media tepercaya jika integritas tidak dapat dipastikan.[1], [4], [5]
- ✓Pertahankan isolasi host dan koordinasikan dengan tim respons insiden untuk mengidentifikasi serta menghapus persistensi yang menurut peneliti dapat terpicu oleh pencabutan token sebelum token dicabut atau dirotasi. Ikuti panduan terbaru dan lakukan respons dari sistem bersih.[4], [5]
- ✓Setelah tim respons menangani persistensi yang dilaporkan, cabut dan rotasi kredensial yang dapat diakses proses instalasi dari sistem bersih. Tinjau repositori dan publikasi paket yang dapat dijangkau, serta periksa artefak CI dan log audit untuk perubahan tanpa izin.[4], [5], [3]
- ✓Di CI, jalankan tripwire skrip instalasi yang telah ditinjau sebelum memasang dependensi; gunakan npm ci --ignore-scripts jika kompatibel; isolasi skrip build yang diperlukan; hapus bypass admin/direct-push dan wajibkan persetujuan independen untuk publikasi.[3], [6]
- ✓Per 2026-10-12, periksa apakah lingkungan Anda memasang salah satu dari enam paket pendamping versi
0.5.144berikut: `tensorlake-native-*family:tensorlake-native-linux-x64-gnu,tensorlake-native-linux-x64-musl,tensorlake-native-linux-arm64-gnu,tensorlake-native-linux-arm64-musl,tensorlake-native-darwin-arm64,tensorlake-native-win32-x64. Registry npm mengembalikan metadata versi untuk masing-masing paket pada tanggal tersebut, jadi perlakukan paket-paket itu sebagai masih diterbitkan dan masukkan ke inventaris paparan. Ini hanya mengonfirmasi ketersediaan di registry, bukan bahwa paket pendamping berisi payload insiden. Dalam PR #1016 yang telah digabung, maintainer menyatakan bahwa versi-versi ini saat itu masih perlu dihapus.[3], [8], [9], [10], [11], [12], [13]
Sumber
- GitHub Advisory Database — GHSA-rqxj-g25x-4v9v
- Tensorlake — issue insiden #1014
- Tensorlake — PR respons #1016
- StepSecurity — analisis teknis
- Socket — analisis teknis
- npm v10 — npm ci dan ignore-scripts
- Tensorlake — rilis bersih 0.5.145
- npm registry — tensorlake-native-linux-x64-gnu@0.5.144
- npm registry — tensorlake-native-linux-x64-musl@0.5.144
- npm registry — tensorlake-native-linux-arm64-gnu@0.5.144
- npm registry — tensorlake-native-linux-arm64-musl@0.5.144
- npm registry — tensorlake-native-darwin-arm64@0.5.144
- npm registry — tensorlake-native-win32-x64@0.5.144