Una vulnerabilita zero-day in Visual Studio Code consente agli aggressori di rubare il token OAuth GitHub di uno sviluppatore con un singolo click - ottenendo accesso completo a tutti i repository privati raggiungibili da quell'account. Il ricercatore di sicurezza Ammar Askar ha pubblicato l'exploit il 3 giugno 2026 e ha rilasciato il codice proof-of-concept senza passare per il processo di sicurezza ufficiale di Microsoft. Al momento della stesura di questo articolo, non esiste alcuna patch e non e stato assegnato alcun CVE.
Come funziona l'exploit in un singolo click
L'attacco inizia quando una vittima clicca su un link appositamente creato che punta a github.dev, la versione browser di VS Code ospitata da Microsoft nel cloud. Una volta caricata la pagina, il JavaScript malevolo incorporato nel link viene eseguito all'interno di un Webview di VS Code - un componente simile a un iframe isolato che VS Code utilizza per renderizzare l'interfaccia delle estensioni e i contenuti web.
Dall'interno di quel Webview, lo script malevolo sfrutta una falla nell'API Window.postMessage() di VS Code per simulare la pressione di tasti nell'editor principale. Queste pressioni di tasti simulate vengono usate per installare silenziosamente un'estensione VS Code dannosa. L'estensione estrae quindi il token OAuth GitHub che github.dev ha ricevuto durante il login e lo invia all'aggressore. Con quel token, l'aggressore puo interrogare l'API GitHub e accedere a tutti i repository raggiungibili dall'account della vittima - non solo quello che stava navigando.
L'intera catena - click, esecuzione nel Webview, installazione dell'estensione, estrazione del token - richiede pochi secondi e non richiede alcuna interazione aggiuntiva da parte della vittima.
Perche il modello di sicurezza Webview di VS Code fallisce qui
VS Code isola il contenuto dei Webview per impedire alle estensioni non attendibili di toccare direttamente l'ambiente dell'editor principale. In teoria, l'isolamento significa che un Webview malevolo puo comunicare con il mondo esterno solo attraverso canali di messaggistica attentamente definiti.
In pratica, il ponte Window.postMessage() che inoltrava gli eventi tastiera tra un Webview e l'editor principale non valida correttamente l'origine o l'intento di quei messaggi. L'exploit di Askar alimenta il ponte con un flusso di eventi di tasti falsi che compongono comandi terminale per installare un'estensione - e VS Code li esegue obbedientemente.
La vulnerabilita si trova all'intersezione di due scelte di design: la funzionalita di comodita dell'inoltro degli eventi tastiera e la fiducia che VS Code ripone nei messaggi che arrivano attraverso quel canale. Disabilitare completamente i Webview romperebbe gran parte dell'ecosistema delle estensioni, quindi non esiste una semplice soluzione di configurazione.
Quali dati sono davvero a rischio
Un token OAuth GitHub rubato vale molto piu della password di un singolo repository. I token OAuth limitano l'accesso a livello di account, il che significa che l'aggressore eredita tutte le autorizzazioni dell'account della vittima: lettura e clonazione del codice privato, invio di commit malevoli, modifica delle configurazioni della pipeline CI/CD, accesso ai segreti memorizzati nelle impostazioni del repository ed enumerazione di ogni progetto privato a cui contribuisce lo sviluppatore - compresi quelli appartenenti al suo datore di lavoro o ai suoi clienti.
Per gli sviluppatori che lavorano con software proprietario, strumenti interni o infrastrutture sensibili alla sicurezza, il furto di un singolo token puo tradursi in una perdita completa del codice sorgente, un attacco alla supply chain o un accesso persistente tramite backdoor ai sistemi di produzione. L'attacco e silenzioso: la vittima non vede nulla di insolito durante o dopo l'exploit.
Perche il ricercatore ha saltato il processo bug bounty di Microsoft
Askar ha scelto la divulgazione pubblica completa specificamente a causa di un incidente precedente con il Microsoft Security Response Center (MSRC). Secondo il suo post sul blog, aveva precedentemente segnalato una vulnerabilita separata di VS Code attraverso i canali appropriati. Microsoft ha risolto silenziosamente il bug in un aggiornamento successivo senza accreditare Askar, senza pubblicare un avviso di sicurezza e senza riconoscere l'impatto sulla sicurezza della falla. Ha considerato quel risultato come una violazione del contratto implicito tra ricercatori e fornitori.
Questa volta, Askar ha dato al team di sicurezza di GitHub esattamente un'ora di preavviso prima di pubblicare. Non ha presentato alcun rapporto a MSRC. Ha anche rilasciato codice exploit proof-of-concept funzionante insieme all'analisi, assicurando che i dettagli tecnici fossero immediatamente disponibili sia per i difensori che per la piu ampia comunita di sicurezza.
Microsoft ha risposto con una dichiarazione in cui afferma che l'azienda "rimane impegnata a valutare rapidamente i problemi segnalati" e a fornire "mitigazioni, indicazioni e protezioni il piu rapidamente possibile". L'azienda non ha riconosciuto il reclamo specifico riguardante la correzione non divulgata precedente, ne ha fornito una tempistica per la correzione della vulnerabilita attuale.
Come gli sviluppatori possono ridurre la loro esposizione
Finche Microsoft non rilascia una patch, il passo immediato piu efficace e cancellare cookie e dati locali del sito per github.dev nel browser. Cio forza un nuovo prompt di autenticazione alla prossima visita al sito, che attiva un avviso visivo se un tentativo di exploit e gia in corso. Tratta qualsiasi prompt imprevisto di installazione di estensioni VS Code - specialmente uno che non hai avviato tu stesso - come un segnale di allarme e interrompi immediatamente.
Piu in generale, questo incidente ricorda che gli ambienti di sviluppo gestiscono credenziali altamente sensibili e che la superficie di attacco e piu grande di quanto la maggior parte degli sviluppatori supponga. Cliccare sui link nei commenti di revisione del codice, nei messaggi di chat o nelle e-mail che portano a github.dev o ad altri ambienti IDE cloud e ora un vettore di rischio significativo. Utilizzare una VPN su reti pubbliche o non attendibili riduce l'esposizione all'intercettazione del traffico che potrebbe amplificare questa classe di attacchi - ad esempio intercettando il token in transito o consegnando il link malevolo tramite una risposta DNS manipolata.
Gli sviluppatori che lavorano con repository sensibili dovrebbero anche verificare gli ambiti dei propri token GitHub e prendere in considerazione la rotazione dei token OAuth attivi come misura precauzionale, anche prima che arrivi una patch. Le politiche di privilegio minimo - che limitano cio a cui ogni singolo token puo accedere - riducono il danno se un token viene compromesso.