Una vulnerabilità zero-day in Visual Studio Code, l'editor di codice più diffuso al mondo, consente a un attaccante di rubare i token OAuth di GitHub della vittima con un singolo clic. La falla è già stata sfruttata in attacchi reali e, secondo le prime ricostruzioni, ha permesso l'accesso a circa 3.700 repository interni di GitHub.

Come funziona l'attacco

Il problema risiede nel sistema di scambio di messaggi tra le webview in sandbox di VS Code. Sfruttandolo, un'estensione malevola può intercettare il token OAuth quando questo viene passato a github.dev, la versione di VS Code che gira nel browser e che si usa per lavorare direttamente sui repository di GitHub.

Lo scenario di attacco è insidiosamente semplice: l'aggressore prepara un notebook Jupyter appositamente costruito e induce la vittima a cliccare su un link che lo apre. È sufficiente quel singolo clic per innescare il furto. Il token sottratto garantisce all'attaccante accesso completo in lettura e scrittura a tutti i repository a cui la vittima ha accesso, compresi quelli privati.

La divulgazione e la patch

Il ricercatore che ha individuato il bug ne ha reso pubblici i dettagli il 2 giugno, appena un'ora dopo aver avvisato il team di sicurezza di GitHub, di proprietà di Microsoft. La vulnerabilità è stata quindi divulgata come zero-day, ma Microsoft ha distribuito la correzione il 3 giugno, a tempo di record.

La rapidità della risposta non cancella però il rischio: poiché l'exploit è circolato prima ancora che molti utenti aggiornassero, la finestra di esposizione è stata reale e, come dimostra la violazione dei repository interni, già sfruttata.

Come proteggersi

  • Aggiorna subito Visual Studio Code all'ultima versione disponibile, che include la correzione.
  • Revoca e rigenera i token di accesso personali di GitHub e controlla le applicazioni OAuth autorizzate sul tuo account, rimuovendo quelle che non riconosci.
  • Attiva l'autenticazione a più fattori su GitHub e abilita gli avvisi di sicurezza.
  • Diffida dei link che aprono notebook o progetti in VS Code o in github.dev, soprattutto se provengono da fonti non verificate.
  • Verifica le estensioni installate e disinstalla quelle non necessarie o di dubbia provenienza: restano uno dei vettori d'attacco più sottovalutati nell'ecosistema degli sviluppatori.

L'episodio conferma quanto gli strumenti di sviluppo siano diventati un bersaglio strategico: compromettere l'ambiente di un programmatore significa, spesso, ottenere le chiavi del codice sorgente di intere organizzazioni.