🛡️ Executive Summary
- CloudSEK collega allo stesso operatore almeno dodici pacchetti npm distribuiti dal 2023 attraverso almeno otto account, con componenti malevoli rimasti online anche dopo interventi sul registry.
- Il pacchetto function-flag avrebbe eseguito un postinstall malevolo dal 18 luglio 2025 senza ricevere un advisory per circa quattordici mesi; cdn-img-fetch risultava ancora raggiungibile dopo il sequestro del pacchetto padre img-to-native.
- La campagna utilizza due rami distinti per distribuire Overlord RAT e lo stealer Node.js movinlike, mostrando come rimuovere il pacchetto segnalato non significhi necessariamente eliminare la relativa supply chain.
Un pacchetto npm può essere rimosso, ricevere un advisory e sparire dal percorso più evidente senza che l’infrastruttura che lo circonda smetta realmente di funzionare. È il problema mostrato da MALFEX, campagna supply chain ricostruita da CloudSEK e attribuita a un singolo operatore attivo almeno dall’agosto 2023. L’analisi collega pacchetti pubblicati attraverso diversi account, dipendenze, repository GitHub e payload a due catene di delivery distinte, una destinata a distribuire Overlord RAT e l’altra uno stealer Node.js. Il dettaglio più grave è operativo: function-flag sarebbe rimasto malevolo per circa quattordici mesi senza advisory, mentre un’altra dipendenza risultava ancora installabile dopo l’intervento sul pacchetto che la richiamava.
Cosa leggere
MALFEX collega dodici pacchetti dietro un solo operatore
Il report MALFEX di CloudSEK ricostruisce un’attività che, dopo l’estensione dell’indagine, comprende dodici pacchetti npm distribuiti attraverso almeno otto account publisher, oltre a un repository GitHub utilizzato per ospitare payload e codice. L’attribuzione allo stesso operatore non deriva soltanto dalla somiglianza dei nomi: CloudSEK individua la stringa malfexteam2027 come costante usata per la derivazione di chiavi, la ritrova attraverso diversi account npm e la collega al repository GitHub cavecrew, dove compaiono inoltre tecniche compatibili con quelle utilizzate dalla campagna. Anche il README di uno dei progetti contiene un riferimento diretto alla “equipe Malfex”. La ricerca distingue pacchetti effettivamente malevoli, wrapper che trascinano dipendenze compromesse e componenti benigni apparentemente utilizzati per costruire reputazione. Questa continuità rende MALFEX più interessante del singolo pacchetto infetto: è la stessa debolezza sistemica emersa nella recente campagna WeaselBiscuit e TanStack, dove la fiducia nel registry npm diventava direttamente superficie d’attacco.
Leggi anche: npm v12 blocca gli install script ma indexed-btree sposta il malware al runtime
function-flag è rimasto malevolo per quattordici mesi senza advisory
Il caso più significativo è function-flag, che secondo la ricostruzione avrebbe iniziato a eseguire codice malevolo nel proprio postinstall il 18 luglio 2025 e sarebbe rimasto privo di advisory per circa quattordici mesi. Un install script npm è particolarmente efficace perché può essere eseguito automaticamente durante l’installazione della dipendenza, trasformando un gesto ordinario dello sviluppatore in un punto di esecuzione. Il problema non è quindi necessariamente convincere la vittima ad avviare manualmente un binario sospetto: basta che il pacchetto entri nell’albero delle dipendenze e che l’ambiente consenta l’esecuzione dello script. La durata dell’esposizione conferma perché npm abbia poi scelto di irrigidire il proprio modello fino a bloccare gli install script per impostazione predefinita nella versione 12, anche se gli attaccanti stanno già spostando l’esecuzione verso altre fasi del runtime. MALFEX mostra inoltre un problema diverso dalla vulnerabilità software classica: non esiste una CVE da correggere nel progetto legittimo, perché è il componente distribuito attraverso il registry a essere intenzionalmente ostile.
Il primo ramo distribuisce Overlord RAT usando AutoIt e un payload mascherato
CloudSEK ricostruisce una prima catena composta da tre pacchetti già coperti da advisory che scaricano un eseguibile Windows presentato come contenuto image/png da un hosting pubblico. Il file contiene un archivio Microsoft IExpress dal quale vengono estratti un interprete AutoIt3 firmato e uno script cifrato; la catena porta infine a una build di Overlord, RAT open source scritto in Go. La particolarità del campione recuperato è la presenza di un resolver C2 basato sulla blockchain Solana: un meccanismo precedentemente osservato nel codice di Overlord come funzione disponibile ma non necessariamente attiva viene trovato da CloudSEK integrato nella build distribuita dalla supply chain npm. L’uso di infrastrutture decentralizzate per recuperare indirizzi C2 rende più difficile neutralizzare definitivamente il malware agendo su un singolo dominio, una tecnica già vista con ChainScript RAT e Polygon utilizzato per cambiare il server di comando senza modificare il malware. In MALFEX questo meccanismo viene combinato con un vettore supply chain capace di arrivare direttamente sulle workstation degli sviluppatori.
Il secondo ramo ruba browser, Telegram e sessioni Discord
Il secondo ramo utilizza un metodo differente. img-to-native e la dipendenza cdn-img-fetch recuperano da GitHub un file PNG poliglotta, estraggono e decifrano il payload attraverso la chiave collegata alla stringa malfexteam2027 e raggiungono successivamente un bundle Node.js di circa 64 MB denominato movinlike. Lo stealer modifica client Discord, raccoglie dati dai browser e cerca le directory tdata di Telegram, quindi esfiltra le informazioni attraverso un webhook Discord che CloudSEK indicava ancora attivo al momento della ricerca. Il valore della catena non è quindi esclusivamente ottenere esecuzione di codice: una workstation di sviluppo può custodire cookie, sessioni, credenziali e token capaci di aprire ulteriori ambienti aziendali. È lo stesso spostamento del bersaglio visto con PhantomRaven, dove npm e strumenti LLM venivano utilizzati per sottrarre segreti direttamente agli sviluppatori. Compromettere il developer significa infatti colpire un’identità che può avere accesso contemporaneamente a repository, CI/CD, package registry e infrastruttura cloud.
Il takedown del pacchetto non elimina automaticamente le dipendenze
È però la gestione delle rimozioni a rendere MALFEX particolarmente significativa. Amazon Inspector e l’ecosistema OSV avevano pubblicato diversi advisory sulle componenti individuate, e img-to-native era stato sequestrato, ma CloudSEK rileva che cdn-img-fetch, indicato esplicitamente come sua dipendenza, risultava ancora raggiungibile sul registry. Lo stesso valeva per function-flag, privo di advisory nonostante la lunga attività malevola. L’attore aveva inoltre pubblicato wrapper come function-color, che trascinava function-flag come dipendenza, e native-runner, collegato invece a img-to-native. Un intervento costruito esclusivamente sul nome del pacchetto segnalato rischia quindi di interrompere una singola strada lasciando aperti altri nodi dello stesso grafo. È il problema che Matrice Digitale ha già osservato nella crisi della supply chain npm legata a Shai-Hulud: la sicurezza dei package manager non può fermarsi alla reputazione del componente immediatamente richiesto, perché dipendenze transitive, wrapper e account usa-e-getta consentono di ricostruire continuamente nuovi percorsi verso lo stesso payload.
Continua con:
TanStack e CrowdSec esposti: WeaselBiscuit conferma la crisi della supply chain npm
PhantomRaven usa LLM e npm per rubare segreti agli sviluppatori
MALFEX mostra che va rimossa la catena e non soltanto il pacchetto
La lezione operativa del report non è quindi soltanto bloccare function-flag e cdn-img-fetch, anche se questo resta il primo intervento indicato per gli ambienti che li hanno installati. La remediation deve seguire l’intero grafo delle dipendenze, i publisher collegati, gli artefatti di persistenza e l’infrastruttura di rete utilizzata dai payload. CloudSEK segnala tra gli indicatori anche l’installazione di AutoIt3 sotto %LOCALAPPDATA%\ScopeSmart Technologies Inc, la scheduled task Maiden, host utilizzati per i payload e il webhook Discord di esfiltrazione. Soprattutto, MALFEX dimostra quanto possa essere fuorviante considerare un takedown equivalente alla chiusura di una campagna: l’attore può distribuire componenti benigni per costruire reputazione, creare account usa-e-getta e lasciare vive dipendenze che continuano a eseguire lo stesso codice. Nel software supply chain il vero oggetto da neutralizzare non è il nome pubblicato sul registry, ma la relazione tra pacchetti, account, dipendenze e payload che permette all’attaccante di ricomparire sotto un’altra etichetta.
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.









