Stealer nelle estensioni VS Code: portafogli e chiavi escono via bot Telegram

10.08.2026 7 min 5

Un paio di estensioni malevole per VS Code chiamate Solidity Pro hanno passato mesi a sembrare un normale strumento per sviluppatori prima di trasformarsi in ladri di credenziali. Yeeth Security ha pubblicato l'analisi il 6 agosto 2026, e ciò che conta non è il payload ma la pazienza: il codice malevolo aspetta tra le dodici e le settantadue ore dopo l'installazione prima di partire. A quel punto lo scanner del marketplace ha finito e lo sviluppatore ha già deciso che l'estensione gli serve.

Che cosa facevano davvero le estensioni Solidity Pro

Le estensioni sono uscite sotto diverse identità di editore, tra cui helper-beeps.solidity-pro e web3devtoolsx.solidity-pro, su Open VSX e sul VS Code Marketplace. Si spacciavano per strumenti dedicati a Solidity, il linguaggio con cui si scrivono gli smart contract di Ethereum, il che mette il pubblico bersaglio in una posizione comoda per un attaccante: persone che tengono le chiavi dei portafogli sulla macchina di lavoro.

Il comportamento cambiava con il numero di versione. Le release dalla 1.0.0 alla 2.4.x facevano da dropper: contattavano endpoint Cloudflare Workers, scaricavano un payload Python cifrato in AES-GCM e lo eseguivano tramite child_process.spawn. Le versioni 2.4.7 e 2.4.8 mantenevano lo stesso scheletro con offuscamento più fitto. Dalla 3.0.0 in poi l'estensione portava un vero e proprio ladro di portafogli crypto, e le versioni più recenti hanno abbandonato del tutto la tappa Cloudflare a favore di un caricamento diretto su un bot Telegram. L'editore web3devtoolsx ha pubblicato anche build pulite e innocue numerate 1.0.0 e 4.0.0: è così che un pacchetto si costruisce una storia credibile.

Che cosa prende il ladro di portafogli crypto

L'elenco del bottino si legge come l'inventario dell'intera vita lavorativa di uno sviluppatore. Sul fronte credenziali: token GitHub nelle forme ghp_ e github_pat_, token GitLab glpat-, chiavi e token di sessione AWS, token Cloudflare, chiavi API di OpenAI e Anthropic, token di bot Telegram. Sul fronte crittografico: chiavi private SSH, chiavi Bitcoin in WIF e xprv, frasi mnemoniche e i forzieri dei portafogli MetaMask, Phantom, Rabby, Coinbase, Trust e Keplr. In più raccoglie credenziali incorporate negli indirizzi e token MFA di 1Password.

Importante: una frase seed non è una password. Non esiste reimpostazione, non esiste assistenza e non esiste annullamento della transazione. Se è stata salvata, digitata o incollata su una macchina su cui girava una versione compromessa, l'ipotesi corretta è che i fondi collegati siano già andati, e l'unica azione utile è spostarli in un portafoglio le cui chiavi quella macchina non ha mai visto.

Come ha superato i controlli: da dodici a settantadue ore di pazienza

Il ritardo è impostato come intervallo casuale tra dodici e settantadue ore dopo l'installazione. Prima di attivarsi, il payload controlla variabili d'ambiente che tradiscono un ambiente automatico, tra cui CI, GITHUB_ACTIONS, JENKINS_HOME e GITPOD_WORKSPACE_ID, e resta dormiente se le trova. Uno scanner che installa un pacchetto, lo osserva per qualche minuto e passa oltre vedrà un assistente Solidity che non fa nulla di insolito, perché in quel momento davvero non fa nulla di insolito.

Il resto è mestiere, non novità: indirizzi degli endpoint conservati come frammenti esadecimali e ricomposti a runtime, stringhe spezzate su tabelle di funzioni autoinvocanti, blocchi base64 passati a eval() e nomi di metodo che ruotano tra una release e l'altra perché una firma scritta per una non combaci con la successiva. Le prime versioni facevano perfino una richiesta di copertura all'API pubblica dei prezzi di CoinGecko, esattamente ciò che farebbe un vero strumento di sviluppo crypto.

Il copione di WhiteCobra e i contatori di download gonfiati

Yeeth collega questa campagna a WhiteCobra, un gruppo che dal 2025 inonda i marketplace di estensioni, pur notando che gli artefatti differiscono abbastanza da parlare di corrispondenza comportamentale e non byte per byte. Il confronto vale la pena perché al gruppo è sfuggito il proprio piano. A settembre 2025 Koi Security ha pubblicato un file intitolato "DEPLOYMENT PLAN: Operation Solidity Pro", recuperato da una campagna di 24 estensioni malevole sul VS Code Marketplace e su Open VSX.

È scritto come il lancio di un prodotto. Cinque fasi: impacchettare, distribuire, promuovere, gonfiare, esfiltrare. La fase di promozione descrive modelli per i social e bot, quella di gonfiaggio ordina di lasciar girare uno script finché l'estensione non mostra 50 000 download, nelle parole del piano stesso per "fornire una prova sociale agli sviluppatori che scoprono l'estensione". La stima dei ricavi va da 10 000 a 500 000 dollari l'ora a seconda di quale portafoglio finisce nella rete. La lezione pratica è netta: il contatore dei download è un numero che controlla l'attaccante, quindi non può essere quello che vi convince.

Cosa fare adesso

  • Guardare che cosa è installato, non che cosa ricordate di aver installato: entrambe le estensioni Solidity Pro sono sparite da Open VSX, ma la rimozione da un marketplace non disinstalla nulla su una macchina dove il pacchetto è già presente.
  • Trattare il caso come compromissione totale delle credenziali: ruotare token GitHub, GitLab, AWS, Cloudflare e chiavi API, rigenerare le chiavi SSH e spostare le crypto in un portafoglio creato su un dispositivo pulito. Ruotare un solo token non basta quando il ladro ha preso l'intero set.
  • Giudicare l'editore, non il contatore: il contatore viene gonfiato di proposito. Un editore sconosciuto con numeri notevoli e una storia breve è esattamente il profilo descritto nel piano.
  • Tenere le frasi seed fuori dalla macchina di sviluppo: un portafoglio hardware mantiene le chiavi di firma fuori dalla portata di qualsiasi estensione dell'editor.
  • Verificare le estensioni con regolarità: rimuovere ciò che non usate più. Ogni estensione installata gira con i vostri permessi e si aggiorna da sola in silenzio.
  • Notare ciò che un editor non dovrebbe mai fare: un'estensione che lancia powershell, cmd, mshta, cscript o curl merita un avviso in qualunque strumento di sicurezza già attivo.

Perché riguarda anche chi non sviluppa

La macchina di uno sviluppatore è un passe-partout. Gli accessi che vi si trovano aprono le pipeline che compilano software installato da altre persone, ed è per questo che un furto simile raramente si ferma alla prima vittima. La stessa logica attraversava la falla di VS Code in cui un solo clic consegnava i repository GitHub e gli agenti di codice in cui una issue su GitHub arrivava ai segreti della CI. Qui gli strumenti di privacy di rete smettono di essere rilevanti, e dirlo apertamente è più utile di un argomento di vendita: una VPN cifra la connessione che un'estensione apre, non decide se debba aprirla. Bloccare a livello DNS i domini di comando noti è una difesa reale, seppur parziale, contro la fase del dropper, ma il codice che avete installato voi e a cui avete dato i vostri permessi non è un problema di rete.

Conclusione

Conclusione: qui non è servita alcuna vulnerabilità. Le estensioni sono state installate di proposito, da persone che volevano la funzione pubblicizzata, e l'unica parte astuta è stata aspettare abbastanza a lungo perché tutti smettessero di guardare. I marketplace continueranno a ospitare tutto questo perché i segnali di fiducia che mostrano, contatori di download e stelle, costano meno da falsificare che da guadagnare. Finché la verifica degli editori non significherà nulla, l'abitudine utile è più piccola di quanto sembri: installare meno estensioni, sapere chi le pubblica e tenere le chiavi importanti su un dispositivo che il vostro editor non ha mai toccato.

vs codemicrosoftsolidity prowhitecobrayeeth securitykoi securityopen vsxgithubgitlabawscloudflaretelegrammetamaskphantomcoinbasetrust wallet1passwordethereumcryptocurrencymalwaresupply chaincybersecuritysecurityprivacyvpn

Leggi anche