GlassWorm: Il Primo Worm Auto-Replicante che Sta Infettando VSCode e i Developer di Tutto il Mondo

Hai presente quella sensazione quando installi un’estensione VSCode e pensi “ma sì, dai, cosa vuoi che sia”? Beh, forse è il momento di iniziare a preoccuparti. Molto.
Il 17 ottobre 2025 è successa una cosa che molti esperti di security temevano da anni ma che nessuno pensava arrivasse così presto: è nato GlassWorm, il primo worm auto-replicante che si propaga attraverso le estensioni di Visual Studio Code.
No, non è fantascienza. È successo davvero. E probabilmente è ancora in corso mentre leggi queste righe.
Il Giorno in cui VSCode Ha Smesso di Essere Sicuro
Lascia che ti racconti cosa è successo. Mentre tu stavi tranquillamente committando codice e bestemmiando contro TypeScript, qualcuno ha compromesso sette estensioni su OpenVSX, il marketplace open-source di estensioni per VSCode.
35.800 download totali. Sette estensioni. Un unico attacco coordinato.
Ma non è questo il vero problema. Il vero problema è che due giorni dopo, il 19 ottobre, dieci estensioni erano ancora attivamente distribuite con il malware. E se pensavi che Microsoft fosse immune? Sorpresa: una nuova estensione infetta è comparsa anche sul marketplace ufficiale di VSCode.
E al momento in cui scrivo? È ancora attiva.
Prenditi un momento per digerire questa informazione. Il tool che usi ogni giorno, l’editor su cui basi la tua produttività, sta distribuendo attivamente malware attraverso i suoi canali ufficiali.
Bentornato nel 2025, dove anche il tuo IDE vuole fregarti.
L’Arte di Rendere Invisibile il Codice Malevolo
Qui viene la parte tecnicamente brillante (e terrificante) di GlassWorm: usa caratteri Unicode invisibili per nascondere il codice malevolo.
Aspetta, cosa?
Sì, hai letto bene. Caratteri Unicode che sono letteralmente invisibili. Quando apri il file nel tuo editor, vedi codice perfettamente legittimo. Pulito, commentato, magari anche con best practices. Ma nascosto tra le righe c’è codice malevolo che tu semplicemente non puoi vedere.
È come se qualcuno avesse scritto “Tutto ok qui” con inchiostro normale e “Rubo le tue credenziali” con inchiostro invisibile sulla stessa pagina. Tu vedi solo la prima parte.
Il processo di review? Completamente bypassato. I reviewer umani guardano il codice e vedono… niente di sospetto. I tool automatici? La maggior parte non è configurata per cercare questi caratteri Unicode nascosti.
È steganografia applicata al codice sorgente. Ed è geniale quanto terrificante.
Pensa a quanto è stato intelligente questo approccio: gli attaccanti non hanno dovuto trovare vulnerabilità zero-day nei sistemi di review. Non hanno dovuto craccare account di maintainer. Hanno semplicemente sfruttato il fatto che i nostri occhi non possono vedere certi caratteri.
È un attacco che sfrutta un bug fondamentale dell’interfaccia tra umani e computer.
Command & Control: Quando la Blockchain Diventa il Tuo Peggior Nemico
Ok, ora parliamo di come GlassWorm comunica con i suoi creatori. Perché qui le cose si fanno davvero interessanti.
I malware tradizionali usano server C2 (Command and Control) classici. Tipo: “Ecco l’IP del mio server, mandami i dati rubati”. Il problema? Quel server può essere scoperto e disattivato. Law enforcement interviene, il server viene sequestrato, game over.
GlassWorm dice: “Hold my beer.”
Il malware usa un triple-layer C2 setup che è praticamente impossibile da disattivare completamente:
Layer 1: Solana Blockchain
Il primo layer di comando e controllo è sulla blockchain di Solana. Sì, hai capito bene. La blockchain.
L’indirizzo wallet è 28PKnu7RzizxBzFPoLp69HLXp9bJL3JFtT2s5QzHsEA2. Puoi anche andare a guardarlo, è pubblico. Ma sai cosa non puoi fare? Disattivarlo.
Le blockchain sono immutabili e decentralizzate by design. Non c’è un singolo server da sequestrare. Non c’è un ISP a cui mandare un cease and desist. È letteralmente impossibile da rimuovere.
Gli attaccanti mandano comandi scrivendo transazioni sulla blockchain. Il malware le legge e le esegue. È un canale di comunicazione che non può essere interdetto da nessuna autorità.
Layer 2: Direct IP Connection
Il secondo layer è più tradizionale ma comunque efficace: una connessione diretta all’IP 217.69.3.218. Se il layer blockchain è lento o ha problemi, il malware fallback qui.
Questo server ospita vari endpoint:
- /qQD%2FJoi3WCWSk8ggGHiTdg%3D%3D- payload principale
- /get_arhive_npm/- archivi NPM compromessi
- /get_zombi_payload/qQD%2FJoi3WCWSk8ggGHiTdg%3D%3D- payload per le zombie machines
C’è anche un endpoint per l’exfiltrazione su 140.82.52.31:80/wall dove vengono mandate tutte le credenziali rubate.
Layer 3: Google Calendar
E qui arriva il colpo di genio. Il backup C2 è… Google Calendar.
Sì, Google Calendar. Il tool che usi per schedulare meeting e dimenticarti del dentista.
L’organizzatore è uhjdclolkdn@gmail.com e l’evento è pubblicamente accessibile a https://calendar.app.google/M2ZCvM8ULL56PD1d6.
Gli attaccanti possono inserire comandi nella descrizione dell’evento. Il malware periodicamente controlla il calendario e legge le istruzioni. Se tutto il resto fallisce, c’è sempre Google Calendar.
E indovina un po’? Google non può bannare un calendario perché “potrebbe essere usato per C2”. È un servizio legittimo usato in modo malevolo. È praticamente impossibile da bloccare senza causare danni collaterali enormi.
È un setup così robusto che anche se riesci a disattivare uno o due layer, il terzo continua a funzionare. È ridondanza applicata al crimine informatico.
Cosa Ruba Effettivamente GlassWorm?
Ok, quindi abbiamo capito come funziona. Ma cosa fa effettivamente questo malware una volta installato?
Spoiler: praticamente tutto quello che può.
Credenziali e Token
Prima di tutto, GlassWorm va a caccia di credenziali. E non è selettivo:
- NPM tokens: le tue credenziali per pubblicare package su npm. Con queste, gli attaccanti possono compromettere i tuoi package e infettare chiunque li scarichi.
- GitHub tokens: accesso completo ai tuoi repository privati, ai secret, a tutto. Possono pushare codice malevolo, rubare IP, compromettere l’intera supply chain.
- Git credentials: username, password, SSH keys. Tutto quello che serve per impersonarti su ogni servizio Git-based.
Una volta ottenute queste credenziali, il malware le usa per propagarsi automaticamente. Pubblica nuove versioni dei tuoi package con il payload malevolo. Pusha commit su repository compromessi. Crea nuove estensioni infette.
È letteralmente un worm: non ha bisogno di intervento umano per diffondersi. Si auto-replica attraverso l’ecosistema developer.
Wallet di Criptovalute
GlassWorm target 49 diverse estensioni di wallet per criptovalute. Quarantanove. Non è un attacco opportunistico, è sistematico.
Se hai un wallet browser-based installato, GlassWorm cerca di estrarre le chiavi private o le seed phrases. E una volta che ha quelle? Game over. I tuoi fondi sono andati.
La lista include tutti i wallet principali: MetaMask, Phantom, Coinbase Wallet, Trust Wallet, e decine di altri. Se lo usi, GlassWorm lo sta targetando.
La Tua Macchina Diventa Infrastruttura Criminale
Ma aspetta, c’è di più. GlassWorm non si limita a rubare. Trasforma la tua macchina in parte dell’infrastruttura criminale:
SOCKS Proxy Server: installa un proxy server sulla tua macchina che gli attaccanti possono usare per mascherare il loro traffico. La tua connessione, il tuo IP, la tua reputazione vengono usati per condurre altri attacchi.
Hidden VNC Server: installa un server VNC nascosto che dà agli attaccanti accesso remoto completo alla tua macchina. Possono vedere il tuo schermo, controllare il mouse, accedere ai file. Tutto.
È come se avessero le chiavi di casa tua e potessero entrare quando vogliono senza che tu te ne accorga.
Persistenza a Livello Sistema
E per assicurarsi che non te ne possa liberare facilmente, GlassWorm installa meccanismi di persistenza nel registry di Windows:
- HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Anche se disinstalli l’estensione, il malware rimane. Sopravvive ai reboot. Si riattiva ogni volta che accendi il computer.
Le Estensioni Compromesse
Ecco l’elenco completo delle estensioni che sono state confermate come compromesse. Se hai installato una di queste versioni, sei stato infettato:
OpenVSX Marketplace:
- codejoy.codejoy-vscode-extension@1.8.3e- @1.8.4
- l-igh-t.vscode-theme-seti-folder@1.2.3
- kleinesfilmroellchen.serenity-dsl-syntaxhighlight@0.3.2
- JScearcy.rust-doc-viewer@4.2.1
- SIRILMP.dark-theme-sm@3.11.4
- CodeInKlingon.git-worktree-menu@1.0.9e- @1.0.91
- ginfuru.better-nunjucks@0.3.2
- ellacrity.recoil@0.7.4
- grrrck.positron-plus-1-e@0.0.71
- jeronimoekerdt.color-picker-universal@2.8.91
- srcery-colors.srcery-colors@0.3.9
- sissel.shopify-liquid@4.0.1
- TretinV3.forts-api-extention@0.3.1
Microsoft VSCode Marketplace:
- cline-ai-main.cline-ai-agent@3.1.3
Nota particolare per l’ultima: cline-ai-agent è un’estensione AI popolare. Gli attaccanti non stanno targetando solo estensioni oscure. Stanno andando dopo tool ampiamente usati.
Se hai una di queste installate, non basta disinstallarla. Devi fare un audit completo del sistema, cambiare tutte le credenziali, verificare i tuoi account Git e NPM, controllare le transazioni dei wallet.
È un processo lungo e doloroso. Ma è l’unico modo per essere sicuri.
Come Difendersi: La Guida Pratica
Ok, abbastanza panico. Parliamo di cosa puoi fare concretamente per proteggerti.
1. Audit Immediato delle Estensioni Installate
Prima cosa: controlla cosa hai installato adesso. Non domani, non dopo il caffè. Adesso.
Apri VSCode, vai su Extensions, e guarda la lista. Per ogni estensione chiediti:
- La uso davvero?
- È stata aggiornata di recente in modo sospetto?
- Il publisher è affidabile?
- Ha review negative recenti?
Se qualcosa ti puzza anche solo vagamente, disinstalla. Meglio essere paranoid che compromessi.
2. Disabilita gli Auto-Update
L’auto-update è comodo, ma significa che un’estensione compromessa può installare malware automaticamente senza che tu te ne accorga.
Vai nelle impostazioni e disabilita gli auto-update per le estensioni. Sì, dovrai aggiornarle manualmente. No, non è conveniente. Ma è più sicuro.
Quando esce un update, prenditi 5 minuti per guardare il changelog. Se dice “bug fixes” senza specificare quali, sospetta. Se vedi un major version bump senza release notes, red flag.
3. Scansiona Prima di Installare
Non installare un’estensione solo perché “sembra figa”. Prima:
- Guarda le review. Se ci sono improvvisamente review negative dopo mesi di review positive, è un red flag enorme.
- Controlla la history dell’estensione. Un maintainer che improvvisamente trasferisce ownership? Sospetto.
- Verifica il publisher. Ha altre estensioni? Sono tutte di qualità simile?
- Controlla il repository GitHub se linkato. È attivo? Ci sono contributor legittimi?
Sì, richiede tempo. Ma è infinitamente meno tempo di quanto ne richiede recuperare da un’infezione.
4. Network Monitoring
Se sei particolarmente paranoid (e dovrest esserlo), installa tool per monitorare le connessioni di rete delle tue applicazioni.
Se vedi VSCode che improvvisamente fa connessioni a IP random o alla blockchain di Solana, hai un problema.
Tool come Little Snitch e Lulu su Mac o GlassWire su Windows possono aiutare. E no, non è overkill. È due diligence.
5. Principio del Minimo Privilegio
Installa solo le estensioni che ti servono davvero. Ogni estensione è una superficie di attacco.
Quel color theme carino che hai installato 3 anni fa e non usi più? Disinstallalo. Quell’extension per formattare JSON che hai usato una volta? Via.
Mantieni un’inventory delle estensioni che effettivamente usi. E fai pulizia regolarmente.
6. Considera un Allowlist Aziendale
Se lavori in un’organizzazione, valuta di implementare un allowlist centralizzato di estensioni approvate.
Sì, i developer si lamenteranno. “Ma io voglio usare questa nuova extension figa!” Tough luck. È molto più semplice gestire 50 estensioni approvate che rispondere a un breach che ha compromesso l’intera supply chain.
Il Significato Più Ampio: Supply Chain Attack 2.0
GlassWorm non è solo un malware particolarmente clever. È un proof of concept di qualcosa di molto più grande e preoccupante.
Per anni abbiamo parlato di supply chain attacks nel contesto di npm, PyPI, RubyGems. L’idea era: “Se comprometto un package popolare, comprometto tutti quelli che lo usano.”
GlassWorm porta questo concetto al livello successivo: compromettere il tooling stesso.
Non attacca i tuoi package. Attacca lo strumento che usi per scrivere i package. È come se invece di avvelenare il cibo, avvelenassero la cucina.
E questo ha implicazioni enormi:
Primo: la superficie di attacco si espande enormemente. Non devi più difendere solo le tue dependencies. Devi difendere il tuo IDE, le sue estensioni, i suoi plugin, tutta la toolchain.
Secondo: l’effetto di leva è massiccio. Un singolo developer compromesso può, inconsapevolmente, compromettere decine di progetti su cui lavora.
Terzo: la detection è molto più difficile. I tool di security tradizionali scansionano le dependencies del tuo codice. Non scansionano le estensioni del tuo IDE.
È un blind spot gigantesco nella security posture della maggior parte delle organizzazioni.
Il Futuro È Qui e Fa Abbastanza Schifo
Eccoci alla verità scomoda: questo è solo l’inizio.
GlassWorm ha dimostrato che:
- I marketplace di estensioni sono vulnerabili
- I processi di review sono bypassabili
- Gli attaccanti possono usare infrastructure impossible da shut down
- I developer sono target ad alto valore
Cosa pensi che succederà? Gli attaccanti improvvisamente decideranno “Ah ok, abbiamo provato, non funziona più”?
No. Vedranno che funziona, che è profittevole, e lo faranno ancora. E ancora. E ancora.
Vedremo varianti per altri IDE. Atom? IntelliJ? Eclipse? Tutti vulnerabili alla stessa classe di attacco.
Vedremo attacchi più sofisticati. Unicode steganography è solo l’inizio. Ci sono decine di tecniche per nascondere codice malevolo che stanno probabilmente già venendo testate in qualche basement o garage.
Vedremo supply chain attacks che combinano multiple vettori. Forse un’estensione VSCode che compromette le tue credentials e usa quelle per compromettere i tuoi package npm che vengono poi usati per compromettere altre macchine.
È un futuro in cui non puoi più fidarti di niente. E francamente? Forse non dovevi mai farlo.
La Lezione Fondamentale
Se devi prendere una cosa sola da questo articolo, che sia questa: la security non è un extra, è una necessità fondamentale.
Non puoi più permetterti di installare estensioni a caso perché “sembrano utili”. Non puoi più ignorare le best practices perché “tanto a me non succederà mai”. Non puoi più assumere che i marketplace ufficiali siano sicuri.
Il trust deve essere earned, non assumed. E deve essere continuamente verificato.
GlassWorm ci ha insegnato che anche i tool più trusted, più usati, più mainstream possono essere compromessi. E quando succede, le conseguenze sono devastanti.
Quindi la prossima volta che vedi quel bottone “Install” su un’estensione che ti sembra carina, fermati un secondo. Chiediti: ne ho davvero bisogno? Mi fido del publisher? Ho verificato le review?
Quel secondo di pausa potrebbe salvarti da settimane di cleanup e potenzialmente anni di conseguenze.
Stay safe out there. E per l’amor del cielo, fate un audit delle vostre estensioni. Adesso.
Fonti:
Hai estensioni VSCode installate? Quando è stata l’ultima volta che hai fatto un security audit? Hai trovato qualcosa di sospetto? Condividi nei commenti – potrebbe aiutare altri developer a proteggersi.