🛡️ Executive Summary
- TensorLake 0.5.144 è stato compromesso con una variante Shai-Hulud capace di rubare token, segreti cloud e credenziali degli ambienti AI.
- Il malware installa persistenza e può reagire alla revoca del token GitHub con una routine distruttiva, rendendo pericolosa una remediation eseguita nell’ordine sbagliato.
- In parallelo MALFEX ha distribuito RAT e infostealer attraverso otto pacchetti npm con 40.767 download complessivi, senza che il dato equivalga a 40.767 host compromessi.
Due campagne differenti mostrano lo stesso problema strutturale dell’ecosistema npm: il computer dello sviluppatore è diventato un punto di ingresso privilegiato verso repository, cloud, pipeline CI/CD e infrastrutture AI. Il pacchetto TensorLake è stato compromesso con Shai-Hulud attraverso una release pubblicata dal repository legittimo, mentre la campagna MALFEX ha mantenuto per mesi pacchetti malevoli sul registry distribuendo RAT e infostealer. Nel primo caso viene abusata la fiducia in un progetto reale; nel secondo vengono creati pacchetti apparentemente innocui. L’effetto però converge: installare una dipendenza può significare consegnare all’attaccante l’identità digitale dello sviluppatore.
Cosa leggere
TensorLake 0.5.144 esegue Shai-Hulud prima ancora del codice dell’applicazione
La ricerca originale di Socket sul compromesso TensorLake identifica nella versione 0.5.144 del pacchetto npm un preinstall che esegue codice malevolo durante l’installazione. TensorLake è un SDK utilizzato per applicazioni, sandbox e servizi cloud collegati anche all’esecuzione di codice generato da modelli AI: il malware interviene quindi sul computer dello sviluppatore prima che quel codice raggiunga l’ambiente isolato. Il payload recupera il runtime Bun, avvia un loader offuscato e tenta di raccogliere token GitHub e npm, credenziali cloud, chiavi SSH, segreti Kubernetes e Vault, password browser e configurazioni utilizzate da strumenti come Claude, Cursor e Windsurf. Socket ha rilevato la release circa undici minuti dopo la pubblicazione, ma il caso mostra l’evoluzione già osservata quando Shai-Hulud ha ampliato a 469 percorsi la ricerca di segreti tra AI, cloud e CI/CD: l’obiettivo non è più semplicemente infettare una workstation, ma ottenere credenziali capaci di aprire altri sistemi.

Leggi anche: GitHub Actions riattiva Mini Shai-Hulud: i tag malevoli erano ancora lì
Il token rubato diventa una trappola se viene revocato troppo presto
La variante distribuita attraverso TensorLake introduce un elemento particolarmente aggressivo. Dopo avere ottenuto un token GitHub, il malware installa un monitor persistente che ne controlla periodicamente la validità. Se il token viene revocato senza avere prima neutralizzato il componente locale, la routine può eseguire un comando distruttivo contro la directory dell’utente. La conseguenza operativa è importante: la risposta automatica “revoca immediatamente tutte le credenziali” può trasformarsi essa stessa nel trigger dell’attacco. Il malware tenta inoltre di propagarsi usando i token npm sottratti per scaricare altri pacchetti controllati dalla vittima, modificarli, incrementarne la versione e ripubblicarli, mentre nei repository GitHub può inserire configurazioni .claude e .vscode capaci di riattivare codice quando un progetto viene aperto. È un salto ulteriore rispetto alle campagne in cui coding assistant ed estensioni venivano già utilizzati per spostare la compromissione dentro gli strumenti degli sviluppatori: il repository non è più soltanto il contenitore del malware, ma diventa un meccanismo di persistenza e propagazione.
MALFEX usa otto pacchetti npm per distribuire RAT e infostealer
Il secondo caso non dipende dalla compromissione di un progetto noto, ma da una campagna costruita direttamente dentro il registry. La ricerca di Checkmarx sulla campagna MALFEX collega allo stesso operatore dodici pacchetti pubblicati dal 2023, otto dei quali identificati come malevoli: tlxbnhd, tldriver, mxdriver, img-to-native, native-runner, function-flag, function-color e cdn-img-fetch. Le catene osservate distribuiscono Overlord RAT, uno stealer Node.js denominato movinlike e ulteriori downloader. Overlord viene installato attraverso script preinstall e postinstall, mentre la seconda catena punta a Discord, browser, sessioni Telegram e wallet crypto. Checkmarx contabilizza 40.767 download complessivi, 37.419 dei quali attribuiti a function-flag, ma precisa che un download npm non equivale automaticamente a un host infetto. È la stessa distinzione necessaria quando PhantomSub ha utilizzato 101 pacchetti npm per trasformare la fiducia nelle dipendenze in un canale operativo.
Il vero bersaglio sono token e identità degli sviluppatori
TensorLake e MALFEX utilizzano tecniche differenti, ma la logica economica dell’attacco è la stessa. Una workstation developer concentra credenziali molto più preziose della singola password di un utente: token npm capaci di pubblicare software, token GitHub con accesso ai repository, secret cloud, configurazioni Kubernetes, chiavi SSH, wallet e variabili d’ambiente utilizzate nelle pipeline. Con una sola compromissione l’attaccante può quindi passare dal computer locale alla catena di distribuzione e moltiplicare il numero delle vittime. Il problema era già evidente nel caso TanStack e WeaselBiscuit, dove il furto di credenziali aveva trasformato la catena npm in un meccanismo di propagazione, e spiega perché limitarsi alla scansione statica del nome del pacchetto non sia più sufficiente. Lifecycle script, dipendenze indirette, workflow GitHub e configurazioni degli strumenti AI sono diventati superfici di esecuzione equivalenti.
npm sta riducendo gli install script ma il malware cambia posizione
L’ecosistema sta già cercando di restringere uno dei vettori più abusati, quello degli script automatici eseguiti durante npm install. Il problema è che gli attaccanti possono semplicemente spostare l’esecuzione: dal preinstall al runtime, da una dipendenza diretta a un wrapper, da npm a GitHub Actions oppure alle configurazioni dell’IDE. È quanto emerso quando npm v12 ha iniziato a bloccare gli install script e indexed-btree ha trasferito il comportamento malevolo al runtime. TensorLake dimostra inoltre che neppure la provenance risolve da sola il problema: se il codice malevolo viene inserito nel repository legittimo e poi pubblicato attraverso il workflow ufficiale, l’attestazione può certificare correttamente l’origine del pacchetto senza certificarne la sicurezza. La provenienza risponde alla domanda “da dove arriva questo artefatto?”, non alla domanda “questo artefatto è sicuro?”.
Continua con:
Falso bug bounty Twilio su npm esfiltra credenziali dagli ambienti developer
PhantomRaven usa LLM e npm per rubare segreti agli sviluppatori
La risposta deve partire dal computer dello sviluppatore
Nel caso TensorLake, chi ha installato la versione 0.5.144 deve considerare la macchina potenzialmente compromessa e rimuovere prima i meccanismi di persistenza associati al monitor del token, quindi procedere alla rotazione delle credenziali esposte da un sistema pulito. Per MALFEX, Checkmarx indica di bloccare tutti gli otto pacchetti identificati, isolare eventuali host Windows che li abbiano eseguiti e sostituire le credenziali raggiungibili dal malware. La lezione comune è però più ampia: la sicurezza del software non finisce più al repository o alla pipeline CI/CD, perché il laptop dello sviluppatore è diventato parte della catena produttiva. Proteggere il registry senza proteggere token, lifecycle script, IDE, strumenti AI e identità di pubblicazione lascia aperta la stessa strada agli attaccanti. npm rimane soltanto il punto visibile di un problema che riguarda l’intero percorso con cui il codice passa dalle mani dello sviluppatore alla produzione.
Iscriviti alla Newsletter
Non perdere le analisi settimanali: Entra nella Matrice Digitale.
Matrice Digitale partecipa al Programma Affiliazione Amazon EU. In qualità di Affiliato Amazon, ricevo un guadagno dagli acquisti idonei. Questo non influenza i prezzi per te.









