// 2 ZERO-DAY · 2 CVE · 1 ADVISORY NELLE ULTIME 24H→
Il pacchetto npm tensorlake@0.5.144 è stato compromesso dal worm Shai-Hulud. L'installazione del SDK AI esegue malware con provenance attestation valida, ruba

Il worm Shai-Hulud ha compromesso il pacchetto npm tensorlake@0.5.144, pubblicato l'8 ottobre 2026, trasformando un SDK TypeScript per piattaforme AI agent in vettore di infezione a catena. La versione malevola, distribuita con provenance attestation valida attraverso la pipeline GitHub Actions del progetto, sfrutta l'installazione stessa del pacchetto — fuori dalla sandbox per cui la piattaforma esiste — per rubare credenziali multi-livello e auto-propagarsi tramite i repository della vittima.

Punti chiave
  • La versione 0.5.144 del pacchetto npm tensorlake, con circa 12.000 download settimanali, è stata pubblicata il 7 ottobre 2026 alle 01:20 UTC via account maintainer compromesso e rimossa da npm dopo detection di Socket avvenuta 11 minuti dopo la pubblicazione.
  • Il payload si attiva tramite preinstall hook che esegue lib/setup.mjs, loader offuscato che lancia il worm principale lib/Math_Symbol.js (~856 KB) tramite runtime Bun.
  • Il malware ruba credenziali AWS, token GitHub, chiavi SSH, wallet crypto, configurazioni Kubernetes/Vault e file di accesso a tool AI (Claude, Cursor, Kiro, Windsurf, Zed), con persistenza editor-specifica che sopravvive alla rimozione del pacchetto.
  • Il componente "hostage token" monitora la revoca del token GitHub ogni 60 secondi e attiva la distruzione dei dati locali, rendendo la risposta incidenti standard potenzialmente controproducente.

Come il malware entra: la catena di fiducia npm sotto attacco

L'attacco ha inizio con il push di file malevoli sul main branch del repository tensorlakeai/tensorlake, sotto il nome di un maintente legittimo. Secondo StepSecurity, il primo commit malevolo è stato eseguito il 7 ottobre 2026 alle 01:20 UTC. La release workflow ha quindi pubblicato la versione 0.5.144 su npm il giorno successivo, 8 ottobre 2026 alle 01:12 UTC, con provenance attestation valida — un meccanismo di firma crittografica che, nel caso specifico, ha garantito autenticità del processo di build senza garantire sicurezza del codice prodotto.

Socket ha rilevato l'anomalia 11 minuti dopo la pubblicazione. Entro quel lasso di tempo, il pacchetto ha iniziato a essere installato da utenti e sistemi automatizzati. Il vettore d'ingresso è il preinstall hook di npm: un campo package.json che esegue lib/setup.mjs durante l'installazione. Questo modulo, offuscato, carica il payload principale lib/Math_Symbol.js — un file di circa 856 KB — e lo esegue tramite il runtime Bun, progettato per prestazioni elevate ma qui impiegato per eludere controlli basati su Node.js standard.

Cosa ruba e dove va: il furto multi-livello e il C2 su Ethereum

Il worm implementa un infostealer a tappeto. Secondo l'analisi di Socket, ruba credenziali AWS, token GitHub, chiavi SSH, credenziali Kubernetes e HashiCorp Vault, wallet di criptovalute e password salvate nei browser. Ma il targeting più insidioso riguarda le configurazioni di tool AI: file MCP (Model Context Protocol) per Claude, Cursor, Kiro, Windsurf e Zed. Questi file contengono spesso endpoint e credenziali di accesso a servizi AI esterni, un tesoro per propagazione laterale in ambienti enterprise.

Il comando e controllo (C2) si risolve tramite uno smart contract Ethereum all'indirizzo 0xb614155Fd88114d40549b259457Bcf921Df091B9. Secondo Endor Labs e OX Security, il contract risolve il dominio iseekaigogo[.]com; i dati rubati vengono stagingati anche su GitHub come fallback. Il wallet Ethereum associato conteneva circa 12,44 dollari ed era stato creato 16 giorni prima dell'attacco — un dettaglio che, unito a chiavi pubbliche di cifratura nuove rispetto alle varianti precedenti, suggerisce operatore diverso dal gruppo originale TeamPCP, i cui membri erano stati arrestati nell'agosto 2026.

"Teams may isolate an agent's generated code while installing its SDK on a developer workstation, application server, or build runner with access to deployment credentials and other secrets. Code executed during that installation inherits the permissions of the installing process." — Socket, riportato da The Register

L'hostage token: quando la risposta incidenti diventa il trigger

Il meccanismo più disturbante è quello denominato "hostage token" da StepSecurity. Il malware installa un servizio gh-token-monitor che verifica la validità del token GitHub rubato ogni 60 secondi, per un massimo di 24 ore. Se il token viene revocato — la pratica standard di incident response — il servizio esegue rm -rf ~/ su sistemi Unix o l'equivalente su Windows.

La stringa kill-switch, identica a quella dell'attacco TanStack del maggio 2026 — "IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner" — è confermata da OX Security. Questa continuità suggerisce condivisione di codice o ispirazione diretta, ma le chiavi pubbliche nuove indicano attore diverso o copycat. Il risultato pratico è una paralisi operativa: la revoca del token, azione correttiva fondamentale, diventa potenzialmente distruttiva. Secondo OX Security, "Shai-Hulud is yet again attacking AI and agentic frameworks, and in an ironic turn of events, a Sandbox for AI, the type of package that's trying to prevent attacks and malwares like Shai-Hulud spreading in the wild."

Persistenza editor AI: il malware che sopravvive alla pulizia

La persistenza non si limita al sistema operativo. Secondo Ashish Kurmi di StepSecurity, "The malware also writes .claude/settings.json and .vscode/tasks.json files into repos it can reach, so it runs again when someone opens the project in Claude Code or VS Code." Questo meccanismo trasforma ogni repository accessibile in potenziale veicolo di reinfezione: anche dopo rimozione del pacchetto npm e pulizia del sistema, l'apertura del progetto in un editor AI riattiva il payload.

L'auto-propagazione completa il quadro. Il worm enumera i pacchetti npm pubblicati dalla vittima, costruisce provenance Sigstore falsificata e ripubblica versioni compromesse. Secondo Socket, "That combination extends the risk beyond a single stolen API key. Any secrets accessible to the executing process may be exposed, and persistence can retain attacker access after the affected dependency is removed." Sono stati identificati 5 repository GitHub con credenziali rubate esposte, secondo OX Security.

Cosa fare adesso

  • Isolare l'installazione dei SDK AI: installare pacchetti npm in ambienti dedicati, senza accesso a credenziali di produzione o deployment, per rompere la catena di permessi ereditati dal processo d'installazione.
  • Verificare provenance ma non fidarsi ciecamente: la provenance attestation valida di tensorlake@0.5.144 dimostra che la firma del processo non equivale a sicurezza del codice: richiedere audit indipendente del contenuto.
  • Controllare configurazioni editor AI: ispezionare file .claude/settings.json e .vscode/tasks.json nei repository per rilevare persistenza mascherata da configurazioni legittime.
  • Pianificare revoca token con awareness del hostage mechanism: prima di revocare token GitHub compromessi, valutare isolamento della macchina per prevenire attivazione del kill-switch di distruzione dati.

Il paradosso della sandbox AI e i limiti della difesa

Il caso Tensorlake espone un paradosso strutturale delle piattaforme AI agent. Tensorlake è progettato per eseguire codice non attendibile in sandbox isolate, ma l'SDK stesso — il ponte tra sviluppatore e piattaforma — si installa con privilegi pieni fuori da ogni contenimento. Il malware non ha "bypassato" la sandbox: ha colpito prima che essa entrasse in gioco, nella fase di installazione che ogni utente deve necessariamente eseguire con fiducia.

L'identità degli operatori resta incerta. Gli arresti di TeamPCP ad agosto 2026 non hanno arrestato la minaccia; chiavi pubbliche nuove e wallet Ethereum giovane indicano un attore che ha appreso dagli errori precedenti o che opera indipendentemente. Non emergono sovrapposizioni infrastrutturali che colleghino l'attore al gruppo originale allo stato attuale. Il meccanismo hostage token, in particolare, rappresenta un'evoluzione tattica: trasforma la best practice di security in vulnerabilità, forzando le vittime a scegliere tra esposizione continuata e distruzione immediata.

Il dossier non specifica come l'account maintainer sia stato compromesso, né quante installazioni della versione 0.5.144 siano avvenute prima della rimozione. Non risulta confermato che il meccanismo di distruzione dati sia stato attivato in the wild. La versione 0.5.143 è confermata pulita; la 0.5.144 è stata rimossa dal registro npm.

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti


Fonti e riferimenti
  1. theregister.com
  2. thehackernews.com
  3. endorlabs.com
  4. ox.security
  5. news.lavx.hu
  6. stepsecurity.io