Open VSX, npm e QuickFox allargano la crisi della supply chain

🛡️ Executive Summary

  • Settantasette estensioni contraffatte su Open VSX raccolgono informazioni sui computer, sui repository Git e sugli ambienti CI degli sviluppatori.
  • ChainDrop compromette centinaia di pacchetti npm, ruba credenziali cloud e usa gli account sottratti per propagarsi automaticamente.
  • Un installer Windows trojanizzato di QuickFox distribuisce la backdoor FDMTP dopo avere selezionato sistemi con wallet e strumenti aziendali.

Tre operazioni contro la supply chain del software mostrano come marketplace, package manager e installer ufficiali possano trasformarsi in canali di ricognizione, furto di credenziali e spionaggio. Su Open VSX, 77 estensioni contraffatte hanno raccolto dati sui sistemi e sugli ambienti di sviluppo. Nell’ecosistema npm, il worm ChainDrop si è propagato attraverso centinaia di pacchetti dopo la compromissione di account GitHub e token di pubblicazione. Una versione trojanizzata di QuickFox, infine, ha distribuito la backdoor FDMTP agli utenti Windows selezionati. Le campagne colpiscono fasi diverse dello sviluppo e della distribuzione, ma sfruttano la stessa debolezza: la fiducia automatica attribuita a nomi, repository, build firmate e software già conosciuti.

Settantasette estensioni Open VSX profilano gli sviluppatori

Annuncio

Tra il 26 luglio e il primo agosto 2026, i sistemi di monitoraggio di Manifold Security hanno individuato 77 estensioni evil twin pubblicate su Open VSX, il marketplace open source utilizzato da editor compatibili con l’ecosistema Visual Studio Code. I pacchetti copiavano nome, namespace e descrizione di estensioni reali, ma venivano distribuiti da account estranei ai rispettivi progetti e quasi sempre con il numero di versione 0.0.1. Il file extension.js originale era stato sostituito con un beacon che comunicava con sottodomini appartenenti a mangorbit[.]com, registrato appena undici giorni prima dell’inizio della campagna. La ricerca tecnica di Manifold Security sulle 77 estensioni Open VSX distingue 58 componenti capaci di trasmettere soprattutto hostname e versione dell’editor da 19 estensioni dotate di una raccolta più estesa.

image 85
Open VSX, npm e QuickFox allargano la crisi della supply chain 5

Queste ultime acquisivano username del sistema operativo, identificativo della macchina, architettura, lingua, fuso orario, percorso completo del workspace, branch Git, commit HEAD, dominio email configurato e organizzazioni associate ai repository remoti. Il codice controllava anche la presenza di ambienti GitHub Actions, GitLab, Azure DevOps, Buildkite, CircleCI, Codespaces, Gitpod e di un massimo di 60 estensioni installate. Non risultano accessi diretti al codice sorgente, alle chiavi SSH, alle password o ai token, ma i metadati raccolti sono sufficienti per mappare organizzazioni, repository privati e infrastrutture CI. Il problema richiama il caso di ModHeader, estensione rimossa dopo la raccolta nascosta dei dati di 900.000 utenti, con una differenza importante: la nuova operazione punta specificamente alla superficie degli sviluppatori e alle informazioni necessarie per preparare compromissioni successive.

La telemetria dichiarata nasconde dati più sensibili

Le pagine delle estensioni presentavano la raccolta come una forma di telemetria anonima e dichiaravano di non accedere a codice, credenziali, token, chiavi SSH o dati del browser. Parte di queste affermazioni corrispondeva al comportamento effettivo, ma i ricercatori hanno rilevato che le versioni più invasive trasmettevano anche valori CI che la documentazione indicava come esclusivamente locali. Su un runner o su un ambiente di sviluppo cloud, variabili come GITHUB_REPOSITORY e CI_PROJECT_PATH possono rivelare direttamente il nome di un progetto privato, mentre i percorsi locali permettono di comprendere struttura, cliente o funzione del repository.

image 86
Open VSX, npm e QuickFox allargano la crisi della supply chain 6

Le estensioni verificavano inoltre se l’installazione fosse stata richiesta automaticamente da file come .vscode/extensions.json o devcontainer.json, informazione utile per capire quali pacchetti possano propagarsi attraverso la configurazione di un progetto senza una scelta diretta dell’utente. Alcune varianti continuavano a tentare l’esfiltrazione per sette giorni e interrogavano un record DNS TXT per recuperare un nuovo endpoint se i domini principali non fossero più raggiungibili. Le 77 estensioni sono state rimosse da Open VSX entro il 3 agosto, ma la cancellazione dal marketplace non disinstalla i componenti già presenti su workstation, immagini di sviluppo e runner. Le organizzazioni devono quindi cercare gli identificativi indicati dalla ricerca, controllare i file di configurazione dei workspace e bloccare mangorbit[.]com. Il rischio è vicino a quello descritto con Cursor, capace di eseguire codice dai repository clonati attraverso configurazioni considerate affidabili: il progetto non contiene soltanto sorgenti, ma istruzioni che possono installare estensioni, avviare attività e modificare l’ambiente dello sviluppatore.

ChainDrop avvelena centinaia di pacchetti npm

La seconda campagna ha dimensioni nettamente superiori e coinvolge un worm npm auto-propagante denominato ChainDrop, collegato alla famiglia Shai-Hulud. L’attività è emersa con la pubblicazione di [email protected], versione malevola di una libreria di caching molto diffusa, per poi raggiungere i namespace Keyv, Cacheable e numerose organizzazioni estranee tra loro. Le stime sono cambiate rapidamente durante la risposta all’incidente: la ricostruzione aggiornata di SafeDep ha confermato 2.234 versioni compromesse appartenenti a 444 pacchetti, distribuite attraverso dodici organizzazioni in poche ore. I nomi coinvolti comprendono keyv, flat-cache, file-entry-cache e cacheable-request, dipendenze che insieme registrano quasi 1,9 miliardi di download mensili e possono raggiungere progetti che non le hanno aggiunte direttamente.

image 87
Open VSX, npm e QuickFox allargano la crisi della supply chain 7

Ogni release avvelenata inserisce nel file package.json il comando "preinstall": "node setup.mjs", che viene eseguito automaticamente prima del completamento di npm install. Il primo stadio scarica il runtime ufficiale Bun da GitHub e lo utilizza per avviare un bundle JavaScript fortemente offuscato. Il meccanismo riprende il rischio già osservato con AsyncAPI compromessa su npm e il malware Miasma distribuito attraverso pacchetti affidabili, ma aggiunge una capacità di propagazione automatica tra maintainer e organizzazioni.

Il worm ruba segreti cloud e infetta nuovi namespace

Il payload cerca token npm, credenziali GitHub, chiavi AWS, segreti Azure e Google Cloud, configurazioni Kubernetes, token HashiCorp Vault, database, chiavi private, credenziali Stripe e Slack e file .env. L’analisi del malware condotta da Aikido mostra che il codice tenta anche di leggere la memoria dei runner GitHub Actions per recuperare segreti e token OIDC utilizzati nei workflow di pubblicazione. I dati vengono cifrati e caricati in repository GitHub pubblici con la descrizione “Shai-Hulud: Here We Go Again”; in caso di errore, l’esfiltrazione può passare attraverso npm-cache[.]com, destinazione recuperabile tramite uno smart contract Ethereum. Dopo avere ottenuto un token npm valido, ChainDrop enumera tutti i pacchetti pubblicabili dall’account, scarica le versioni correnti, aggiunge setup.mjs e math_init.js, incrementa il numero di versione e ripubblica automaticamente i tarball compromessi. La propagazione può quindi passare da un maintainer a tutti i progetti sui quali possiede diritti, raggiungendo in seguito altri sviluppatori e nuovi account. Il modello ricorda ViteVenom, malware npm capace di usare la blockchain per rendere resiliente il comando e controllo e la compromissione di Joyfill, dove codice malevolo inserito nei pacchetti npm installava un RAT collegato a DEV#POPPER.

GitHub Actions certifica una build proveniente da sorgenti avvelenati

Le release compromesse potevano conservare una provenienza SLSA valida perché venivano costruite e pubblicate attraverso i workflow GitHub Actions autentici del progetto. L’attestazione dimostrava correttamente quale pipeline avesse generato il pacchetto, ma non poteva certificare che il codice fornito alla pipeline fosse sicuro. Lo stesso problema riguarda i commit firmati: una firma valida conferma il controllo della chiave o del workflow utilizzato, non la legittimità dell’operatore che in quel momento possiede le credenziali. Nel repository Keyv sono stati inoltre inseriti hook in .claude/settings.json e .vscode/tasks.json, progettati per avviare il malware quando un utente apre il progetto in Claude Code o autorizza le attività del workspace in Visual Studio Code. Il codice può quindi partire anche senza installare il pacchetto npm, trasformando il semplice checkout del repository in un secondo percorso di infezione. La tecnica conferma quanto osservato con GitHub Actions trasformato in infrastruttura operativa contro server e pipeline: workflow, attestazioni e bot verificati restano affidabili soltanto se account, sorgenti e segreti che li alimentano non sono stati compromessi.

QuickFox distribuisce FDMTP attraverso l’installer Windows

Il terzo incidente riguarda QuickFox, servizio VPN e di accelerazione della rete utilizzato soprattutto da cittadini cinesi residenti all’estero. Un installer Windows modificato ha distribuito per quasi un anno la backdoor FDMTP attraverso due righe JavaScript inserite in un file HTML del renderer Electron. La ricerca di Fortinet FortiGuard Labs sulla compromissione di QuickFox colloca l’inizio della campagna almeno nell’agosto 2025 e identifica 3.0.51.0 come prima versione nota coinvolta. Il codice aggiunto caricava due file da cdns3.51quickfox[.]cn, dominio costruito per somigliare a quello ufficiale 51quickfox[.]com.

image 88
Open VSX, npm e QuickFox allargano la crisi della supply chain 8

Uno dei file conteneva codice Firebase legittimo, mentre l’altro verificava che il sistema utilizzasse Windows, controllava l’assenza di un’infezione precedente ed enumerava i processi attivi. La catena si interrompeva se trovava Steam, ma proseguiva in presenza di almeno uno tra 26 programmi considerati interessanti, inclusi Xshell, MobaXterm, Navicat, DBeaver, Git, IntelliJ IDEA, Visual Studio Code, Exodus Wallet, Binance, Ledger Live, Trezor Suite e Telegram. Questa selezione indica un interesse verso amministratori, sviluppatori, professionisti e utenti di criptovalute, senza permettere di stabilire con certezza il profilo di tutte le vittime.

FDMTP seleziona i bersagli e carica moduli aggiuntivi

I sistemi selezionati ricevevano un archivio ZIP contenente una catena di DLL side-loading. La prima generazione avviava direttamente una DLL con FDMTP incorporato, mentre quella osservata dal maggio 2026 caricava un file cifrato denominato update.bin. Una volta attiva, la backdoor raccoglieva titolo della finestra in primo piano, antivirus installati, versione di .NET Framework, configurazione di rete, sistema operativo, username, percorso dell’impianto e processi in esecuzione. Il server remoto poteva quindi decidere se continuare l’operazione e inviare plugin per aggiungere persistenza, gestione delle attività pianificate, download di file ed esecuzione di comandi. Fortinet non attribuisce definitivamente la campagna, ma segnala sovrapposizioni operative con Mustang Panda, gruppo statale cinese noto per l’uso di DLL side-loading e della famiglia FDMTP. La presenza di utenti cinesi all’estero tra il pubblico di QuickFox rende plausibile un’attività di sorveglianza contro studenti ed espatriati, ma resta possibile anche un targeting rivolto a professionisti che interagiscono con interlocutori cinesi per motivi commerciali o diplomatici. Le evidenze pubbliche non consentono di scegliere definitivamente tra le due ipotesi. QuickFox ha rimosso i componenti malevoli con la versione 3.59.6; chi ha utilizzato release precedenti deve considerare la reinstallazione del software insufficiente e verificare eventuali DLL, persistenza e connessioni associate a FDMTP.

La risposta deve partire dagli ambienti di sviluppo già esposti

Le tre campagne richiedono una risposta che vada oltre la rimozione del singolo pacchetto. Le estensioni Open VSX devono essere eliminate anche da immagini, devcontainer, configurazioni workspace e runner nei quali potrebbero essere installate automaticamente. Per ChainDrop, qualsiasi workstation o ambiente CI/CD che abbia eseguito una versione compromessa deve essere trattato come esposto al furto di credenziali. Prima di ruotare i token occorre individuare e rimuovere il watcher installato dal malware, perché la revoca può attivare un comando predisposto dall’attaccante. Successivamente vanno rigenerati token npm e GitHub, chiavi cloud, segreti Kubernetes, credenziali Vault, chiavi SSH e variabili CI accessibili al processo. I lockfile devono essere confrontati con le versioni compromesse, perché il ripristino del tag latest non corregge una dipendenza già bloccata su un artefatto malevolo. Per QuickFox, gli amministratori devono ricostruire la versione effettivamente installata, controllare i processi selezionati dalla campagna e cercare tracce di DLL side-loading e della backdoor FDMTP. La supply chain non viene compromessa soltanto quando un server di distribuzione viene violato: può cedere attraverso namespace non verificati, token di maintainer, repository alterati, workflow legittimi o un installer ufficiale modificato.

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.

Torna in alto