Een beveiligingsonderzoeker heeft exploitcode vrijgegeven voor een zero-day kwetsbaarheid in Visual Studio Code (VS Code) waarmee aanvallers GitHub authenticatietokens kunnen stelen door gebruikers te misleiden tot het klikken op een link. Microsoft classificeert een softwarefout als zero-day wanneer deze publiekelijk bekend is gemaakt en/of actief wordt misbruikt zonder dat er een officiële patch beschikbaar is.

Volgens onderzoeker Ammar Askar, die dit in een blogpost toelichtte, maakt de kwetsbaarheid het mogelijk voor aanvallers om kwaadaardige extensies te installeren die GitHub OAuth-tokens stelen. Dit gebeurt wanneer tokens worden doorgegeven aan github.dev, de browsergebaseerde versie van VS Code voor het werken aan GitHub repositories. De aanval misbruikt het sandboxed webview-berichtensysteem van VS Code. De door Askar vrijgegeven proof-of-concept exploit draait kwaadaardige JavaScript in een webview die toetsenbordinvoer simuleert om zo een extensie te installeren die het OAuth-token buitmaakt en de GitHub API bevraagt om alle privé repositories van het slachtoffer te inventariseren.

De functionaliteit werkt doordat github.com een OAuth-token naar github.dev post, waarmee het namens de gebruiker met GitHub kan communiceren. Dit token is niet beperkt tot één repository, maar geeft volledige toegang tot alle repositories waartoe de gebruiker toegang heeft. Hoewel er nog geen patch is en er nog geen CVE-nummer is toegekend, kunnen gebruikers zich beschermen door cookies en lokale sitegegevens van github.dev in hun browser te verwijderen. Hierdoor verschijnt een waarschuwingsmelding bij het installeren van extensies, wat misbruik van de kwetsbaarheid kan voorkomen.

Askar meldde de kwetsbaarheid een uur voor openbaarmaking aan GitHub en koos voor directe publieke bekendmaking vanwege een eerdere negatieve ervaring met het Microsoft Security Response Center (MSRC). Eerder werd een gerapporteerde VS Code bug stilzwijgend opgelost zonder erkenning van de impact. Askar gaf aan dat hij voortaan alle kwetsbaarheden in VS Code publiekelijk zal bekendmaken, mede vanwege de moeizame communicatie met MSRC over deze bugs, zoals hij beschreef in een vorige blogpost.

Deze onthulling volgt op een reeks zero-days in Microsoft-producten die door een anonieme onderzoeker onder de naam 'Nightmare Eclipse' werden gepubliceerd. Deze onderzoeker uitte eveneens kritiek op de manier waarop MSRC kwetsbaarheden afhandelt. Microsoft reageerde aanvankelijk met dreigementen van juridische stappen, maar gaf later aan samen te werken met wetshandhavers wanneer wetten worden overtreden en klanten schade ondervinden, zoals beschreven in hun officiële verklaring.