FlawOpen

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

● Tensorlake · CWE-506 · October 8, 2026 · Kritisch
Sicherheitsforschung · FlawOpen

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]

💡 Einfache Erklärung (ELI5)

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]
Zuordnung zu einer Malware-Familie
StepSecurity und Socket ordnen das Loader-Muster ChainDrop/Shai-Hulud zu. Das GitHub-Malware-Advisory nennt keine Kampagnenfamilie; die Zuordnung stammt von den Forschenden.[4], [5], [1]

Framework-Zuordnungen

  • CWE-Referenz für die in diesem Leitfaden beschriebene Schwachstelle: CWE-506

Vorfall-Zeitstrahl

7. Oktober 2026

Laut Reaktion des Teams wurden Commits von einem Repository-Admin-Konto direkt auf main übertragen.[2], [3]

8. Oktober 2026

Der Release-Workflow veröffentlichte das schädliche tensorlake@0.5.144; laut Team entfernte npm es später.[1], [2]

8. Oktober 2026

Das Team mergte PR #1016, stellte den letzten sauberen Commit wieder her, ergänzte Kontrollen für Installationsskripte und erhöhte die saubere Version auf 0.5.145.[3], [7]

Schritt-für-Schritt Angriffsablauf

Schritt 1

Das Vertrauen in das Repository wurde umgangen

Die Incident-PR berichtet von direkten Commits auf main durch ein Admin-Konto außerhalb der üblichen Pull-Request-Prüfung. Anschließend wurde die Veröffentlichung manuell aus diesem Repository gestartet.[2], [3]

Schritt 2

Das Paket führte Code bei der Installation aus

Untersuchende fanden einen preinstall-Hook, der bei tensorlake@0.5.144 einen Loader startete. Der Code erbte die Rechte des installierenden Prozesses; das SDK musste zuvor nicht importiert werden.[1], [4], [5], [6]

Schritt 3

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]

Schritt 4

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]

VERWUNDBARE IMPLEMENTIERUNG
steps:
  - run: npm ci
GEHÄRTETER SICHERHEITS-PATCH
steps:
  - run: node scripts/check-no-install-scripts.mjs
  - run: npm ci --ignore-scripts

Checkliste für Engineering & Systemsicherheit

Quellen