Cybersecurity-onderzoekers hebben een aanval met één klik via Microsoft Visual Studio Code (VS Code) onthuld die het mogelijk maakt om het GitHub-token van een gebruiker te stelen.
“Alleen al door op een link te klikken, is het voor een aanvaller mogelijk om een GitHub-token te stelen dat je repo’s kan lezen en ernaar kan schrijven, inclusief privérepos”, zegt beveiligingsonderzoeker Ammar Askar.
GitHub ondersteunt een functie genaamd GitHub.dev die draait als een lichtgewicht webgebaseerde broncode-editor in de sandbox van de webbrowser door een VS Code-omgeving te starten. Hiermee kunnen gebruikers pull-aanvragen verzenden en commits maken.
“Deze functionaliteit wordt bereikt door github.com POSTen via een OAuth-token naar github.dev, waardoor het namens jou met GitHub kan communiceren”, zei Askar. “Het token is niet beperkt tot de specifieke repository waarmee u interactie heeft gehad, wat betekent dat het volledige toegang heeft tot elke andere repo waartoe u toegang heeft.”
In een notendop stelt de kwetsbaarheid aanvallers in staat kwaadaardige VS Code-extensies te installeren die GitHub OAuth-tokens stelen wanneer ze worden doorgegeven aan GitHub.dev door gebruik te maken van een mechanisme voor het doorgeven van berichten tussen het hoofdvenster van VS Code en webviews. Webviews worden gebruikt om Markdown-voorbeelden weer te geven of Jupyter-notebooks te bewerken.

De exploit voert met name kwaadaardig JavaScript uit in een niet-vertrouwde webweergave om toetsaanslagen (ook wel keydown-gebeurtenissen genoemd) in het hoofdeditorvenster te simuleren, opent het opdrachtpalet door ‘Ctrl+Shift+P’ te activeren en installeert een door de aanvaller bestuurde extensie die het GitHub OAuth-token extraheert dat naar GitHub.dev is verzonden en de GitHub API opvraagt om alle privéopslagplaatsen op te sommen waartoe het slachtoffer toegang heeft.
Het is vermeldenswaard dat de aanpak ook gebruik maakt van een VS Code-functie genaamd lokale werkruimte-extensies waarmee een extensie direct kan worden geïnstalleerd zonder dat er een extra vertrouwensdialoogprompt wordt weergegeven, zolang deze maar in de map “.vscode/extensions” binnen die werkruimte wordt geplaatst, waardoor de vertrouwenscontrole van de uitgever effectief wordt omzeild.
“Dit is echter maar een klein minpuntje. Een van de dingen die extensies kunnen doen als onderdeel van hun package.json is het toevoegen van extra sneltoetsen aan VS Code”, legt de onderzoeker uit. “Omdat we op een betrouwbare manier sneltoetsverbindingen kunnen activeren, kunnen we gewoon een toetsbinding toevoegen voor welk VS Code-commando dan ook, zoals het installeren van een extensie terwijl we de controle van de vertrouwde uitgever overslaan.”
De onderzoeker merkte ook op dat GitHub op 2 juni 2026 op de hoogte werd gebracht van de kwetsbaarheid, een uur waarna de details van het probleem openbaar werden gemaakt, daarbij verwijzend naar de manier waarop Microsoft in het verleden met VS Code-gerelateerde bugs omging. Op het moment van schrijven heeft Microsoft de kwetsbaarheid erkend en aangegeven dat er aan een oplossing wordt gewerkt.
“Ter verduidelijking: dit probleem heeft geen invloed op VS Code Desktop”, zegt Alexandru Dima, partnersoftware-engineeringmanager bij Microsoft.