flawopen.com/Incidents/tensorlake-npm-install-hook-compromise-october-2026
Tensorlake npm 0.5.144: schädlicher Installations-Hook
Eine schädliche Version des Tensorlake-KI-SDKs ergänzte einen preinstall-Loader. Das Team bestätigte direkte Änderungen an main und verschärfte den Veröffentlichungsprozess; GitHubs Malware-Advisory stuft Hosts mit ausgeführtem Code als kompromittiert ein. Forschende verbinden das Loader-Muster mit der ChainDrop/Shai-Hulud-Familie; das GitHub-Advisory bestätigt diese Zuordnung nicht.[1], [2], [3], [4], [5]
Die Installation dieses Pakets war wie das Anschließen eines Geräts, das sofort startet: Man musste weder einen Knopf drücken noch es benutzen. npm führte den schädlichen Preinstall-Hook mit den Rechten des installierenden Prozesses aus, noch bevor jemand das SDK importierte.[3], [6], [1]
Kernkonzepte & Begriffe
preinstall-Hook- Ein Skript, das npm während einer Installation ausführen kann. Das veröffentlichte Manifest von Tensorlake 0.5.144 startete darüber einen Loader; ein SDK-Import war nicht erforderlich.[1], [6]
Herkunftsnachweis- Beleg dafür, wo und wie ein Artefakt gebaut wurde. Laut Team hatte die schädliche Veröffentlichung eine npm-Provenienz; das belegt nicht, dass der Quellcode sicher war.[2], [3]
Prüfschranke für Installationsskripte- Eine CI-Prüfung, die fehlschlägt, wenn ein veröffentlichtes Manifest Installationsskripte deklariert. Tensorlake ergänzte sie nach dem Vorfall zusammen mit npm ci --ignore-scripts.[3]
Framework-Zuordnungen
- CWE-Referenz für die in diesem Leitfaden beschriebene Schwachstelle: CWE-506
Vorfall-Zeitstrahl
Schritt-für-Schritt Angriffsablauf
Zugangsdaten und Persistenz des Hosts waren gefährdet
Laut GitHub-Malware-Advisory muss ein betroffener Host als vollständig kompromittiert gelten. StepSecurity und Socket berichten von Zugangsdiebstahl und Persistenz, darunter ein Monitor, der auf die Widerrufung von Tokens reagieren konnte. Diese Details den Forschenden zuordnen; nicht annehmen, dass jede Funktion auf jedem Host lief.[1], [4], [5]
Das Team stellte Release-Kontrollen wieder her
Die Reaktion machte die schädlichen Commits rückgängig, ergänzte npm ci --ignore-scripts und eine Manifest-Prüfschranke, verschärfte Repository- und Veröffentlichungsrechte und löste das Paket durch 0.5.145 ab. Das GHSA nennt keine gepatchte Version, da es Malware statt eines üblichen verwundbaren Codebereichs erfasst.[3], [7]
Quellcode: Verwundbar vs. Sicher
Dieser CI-Vergleich folgt der gemergten PR #1016; er zeigt weder das Malware-Paket noch einen Exploit. Die Prüfschranke läuft vor der Installation und weist veröffentlichte Installations-Hooks zurück; ignore-scripts verhindert, dass npm ci Lifecycle-Skripte von Abhängigkeiten ausführt. Das Team meldete, dass Tests und SDK-Build damit funktionierten. Pakete mit erforderlichen Hooks können betroffen sein; explizit gestartete Befehle wie npm test führen ihre vorgesehenen Skripte weiterhin aus. Nachfolgende Build-Schritte isolieren und Provenienz nicht mit Quellcodeprüfung verwechseln. Der Ausschnitt ist unvollständig: Zusätzlich zu deklarierten Installations-Hooks weist die Prüfschranke des Maintainers auch unerwartete Dateien unter typescript/lib/ zurück.[3], [6]
steps:
- run: npm cisteps:
- run: node scripts/check-no-install-scripts.mjs
- run: npm ci --ignore-scriptsCheckliste für Engineering & Systemsicherheit
- ✓Suchen Sie in Manifesten, Lockfiles, Caches und Build-Protokollen nach tensorlake@0.5.144. Das Advisory nennt genau diese npm-Version; der Paketname allein belegt keine Betroffenheit.[1]
- ✓Wenn die Installation lief, isolieren Sie den Host vom Netzwerk und sichern Sie Beweise. Das Entfernen der Abhängigkeit beweist nicht, dass Persistenz oder andere Änderungen verschwunden sind; bei unklarer Integrität aus vertrauenswürdigen Medien neu aufsetzen.[1], [4], [5]
- ✓Halten Sie den Host isoliert und stimmen Sie mit Incident Response ab, wie die laut Forschenden durch Token-Widerruf auslösbare Persistenz erkannt und entfernt wird, bevor Tokens widerrufen oder erneuert werden. Befolgen Sie aktuelle Hinweise und führen Sie Maßnahmen von sauberen Systemen aus.[4], [5]
- ✓Nachdem Incident Response die berichtete Persistenz behandelt hat, widerrufen und erneuern Sie von einem sauberen System aus die Zugangsdaten, auf die der Installationsprozess zugreifen konnte. Prüfen Sie erreichbare Repositories und Paketveröffentlichungen sowie CI-Artefakte und Audit-Logs auf unautorisierte Änderungen.[4], [5], [3]
- ✓In CI eine geprüfte Installationsskript-Schranke vor der Installation ausführen, npm ci --ignore-scripts soweit kompatibel verwenden, erforderliche Build-Skripte isolieren, Admin-/Direkt-Push-Umgehungen entfernen und unabhängige Freigabe für Veröffentlichungen verlangen.[3], [6]
- ✓Prüfen Sie mit Stand 2026-10-12, ob Ihre Umgebung eines dieser sechs zugehörigen Pakete in Version
0.5.144installiert hat: `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. Die npm-Registry lieferte an diesem Tag für jedes Paket Versionsmetadaten zurück. Behandeln Sie sie daher als weiterhin veröffentlicht und nehmen Sie sie in die Expositionsübersicht auf. Das bestätigt nur die Verfügbarkeit in der Registry, nicht, dass ein zugehöriges Paket die Payload des Vorfalls enthielt. In der gemergten PR #1016 teilte der Maintainer mit, dass diese Versionen damals noch entfernt werden mussten.[3], [8], [9], [10], [11], [12], [13]
Quellen
- GitHub Advisory Database — GHSA-rqxj-g25x-4v9v
- Tensorlake — Incident-Issue #1014
- Tensorlake — Reaktions-PR #1016
- StepSecurity — technische Analyse
- Socket — technische Analyse
- npm v10 — npm ci und ignore-scripts
- Tensorlake — sauberes Release 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