Tensorlake npm paketi ele geçirildi: Token iptal edilirse diski silen Shai-Hulud solucanı
tensorlake npm paketinin 0.5.144 sürümü, çalınan GitHub token'ı iptal edilirse geliştiricinin ev dizinini silebilen, kimlik bilgisi çalan bir solucan dağıttı.
Kısaca
- Socket'e göre zararlı [email protected] sürümü 8 Ekim'de 01.12 UTC'de npm'e yüklendi.
- Zararlı; npm, GitHub, bulut, Kubernetes, Vault ve SSH sırlarını çalıyor, kurbanın kendi paketlerini yeniden yayımlıyor.
- 'Rehine token' izleyicisi, çalınan GitHub token'ı önce iptal edilirse kullanıcının ev dizinini silebiliyor.
- Araştırmacılar, kimlik bilgilerini değiştirmeden önce izleyicinin kaldırılmasını ve 0.5.143'e dönülmesini öneriyor.
Yapay zekâ ajan altyapısı için TypeScript SDK'sı sunan Tensorlake'in resmî npm paketi ele geçirildi ve Shai-Hulud ailesiyle bağlantılı, kendi kendine yayılan bir kimlik bilgisi hırsızı içeren sürüm yayımlandı. Socket ve StepSecurity'nin 8 Ekim'de ayrı ayrı yayımladığı raporlara göre zararlı [email protected] sürümü, "rehine token" adı verilen bir düzenek barındırıyor: Çalınan GitHub token'ı zararlı temizlenmeden iptal edilirse geliştiricinin ev dizini silinebiliyor. Bu da olay müdahalesinde adımların sırasını kritik hâle getiriyor.
Neler oldu?
StepSecurity'nin aktardığına göre ilk zararlı commit, 7 Ekim'de 01.20 UTC'de bir proje yöneticisinin adıyla tensorlakeai/tensorlake GitHub deposunun main dalına doğrudan gönderildi. Ardından pull request sürecinden geçmeyen yedi commit daha geldi. Projenin kendi sürüm iş akışı da 0.5.144 sürümünü 8 Ekim'de 01.12 UTC'de npm'e yükledi. Socket, sürümü yaklaşık 11 dakika sonra işaretlediğini belirtti. Socket'e göre paket haftada yaklaşık 12 bin kez indiriliyor; ancak bu rakam zararlı sürümün indirilme sayısını ya da doğrulanmış bulaşmaları göstermiyor. Saldırganların erişimi nasıl elde ettiği açıklanmadı.
Sürüm projenin kendi deposundan derlendiği için geçerli bir npm provenance (köken) kanıtı taşıyor. StepSecurity, bu kanıtın paketin nerede derlendiğini gösterdiğini ancak kodun güvenli olduğunu kanıtlamadığını vurguladı. The Hacker News ise olayı ağustosta ilk kez belgelenen ChainDrop kampanyasıyla ilişkilendirdi.
Teknik detaylar
Bir preinstall kancası, gizlenmiş bir yükleyici olan lib/setup.mjs dosyasını çalıştırıyor; bu dosya da yaklaşık 856 KB boyutundaki lib/Math_Symbol.js yükünü Bun çalışma ortamıyla başlatıyor. Socket'e göre zararlı; npm ve GitHub token'larını, AWS kimlik bilgilerini, yerel HashiCorp Vault verilerini, Kubernetes hizmet hesabı token'larını, SSH anahtarlarını, .env dosyalarını, kripto cüzdanlarını, mesajlaşma uygulaması verilerini ve yapay zekâ kodlama araçlarının yapılandırma dosyalarını topluyor. StepSecurity, yükleyicinin CI sistemlerinde kendini devre dışı bıraktığını ve asıl hedefin geliştirici bilgisayarları olduğunu bildirirken Socket'in raporunda CI kaynaklı kimlik bilgileri de hedefler arasında sayılıyor.
Solucan, kurbanın npm kimliğine bağlı paketleri listeleyip bulaşmış sürümlerini yeniden yayımlıyor. GitHub token'ı ele geçirdiğinde erişebildiği depolara [email protected] sahte yazar adıyla .claude/settings.json ve .vscode/tasks.json dosyaları ekliyor; böylece proje açıldığında kod yeniden çalışıyor. Komuta adresi bir Ethereum sözleşmesi üzerinden çözülüyor; veriler iseekaigogo.com adresine ve açıklaması "Shai-Hulud: Here We Go Again" olan herkese açık GitHub depolarına sızdırılıyor.
StepSecurity'ye göre gh-token-monitor hizmeti, çalınan token'ı 24 saate kadar her 60 saniyede bir GitHub API'sinde denetliyor. Token reddedilirse Linux ve macOS'ta rm -rf ~/ komutunu çalıştırıyor, Windows'ta ise kullanıcı profilini siliyor.
Ne yapmalı?
Araştırmacılar, kilit dosyalarında 0.5.144 sürümünün aranmasını, [email protected] sürümüne sabitlenmesini, node_modules ve npm önbelleğinin temizlenmesini ve ignore-scripts=true ayarının kullanılmasını öneriyor. Herhangi bir token iptal edilmeden önce verilerin yedeklenmesi ve izleyicinin kaldırılması gerekiyor: ~/.config/gh-token-monitor/, ~/.local/bin/gh-token-monitor.sh, ilgili systemd birimi ya da com.user.gh-token-monitor.plist LaunchAgent'ı ve Windows'ta monitor.ps1 çalıştıran oturum açma zamanlanmış görevi. Ancak bundan sonra tüm açığa çıkmış kimlik bilgileri değiştirilmeli, hesaplar beklenmedik paket sürümleri ve commit'ler açısından denetlenmeli. Temiz olduğu doğrulanamayan makinelerin yeniden kurulması tavsiye ediliyor.
Kaynaklar
- TensorLake npm SDK Compromised in ChainDrop Shai-Hulud Credential-Stealing Attack — Socket
- Tensorlake npm Package Compromised: A Worm With a Hostage Token That Wipes Your Machine If You Revoke It — StepSecurity
- Tensorlake npm Package Compromised to Deliver Shai-Hulud Credential-Stealing Worm — The Hacker News
Bu haber yukarıda listelenen kaynaklara dayanmaktadır. Kritik sistemlerle ilgili işlem yapmadan önce üreticinin resmi duyurusunu kontrol edin.



