Exploit en un clic dans GitHub.dev de VS Code vole les tokens GitHub, exposant les dépôts privés
Une vulnérabilité critique a été découverte dans **Microsoft Visual Studio Code (VS Code)**, spécifiquement dans son environnement **GitHub.dev**. Cet exploit en un clic permet aux attaquants de voler les tokens OAuth **GitHub**, leur accordant un accès en lecture et écriture aux dépôts privés d'un utilisateur. La faille exploite des extensions malveillantes et un mécanisme de passage de messages pour contourner les contrôles de sécurité.
Des chercheurs en cybersécurité ont découvert une vulnérabilité importante affectant **Microsoft Visual Studio Code (VS Code)** lorsqu'il est utilisé avec **GitHub.dev**, un éditeur de code basé sur le web. Cet exploit permet une attaque en un clic qui peut compromettre le token **GitHub** d'un utilisateur, lui donnant un accès non autorisé à ses dépôts.
« En cliquant simplement sur un lien, il est possible pour un attaquant de voler un token GitHub qui peut lire et écrire dans vos dépôts, y compris les privés », a averti le chercheur en sécurité **Ammar Askar** dans son article de blog détaillé [said](https://blog.ammaraskar.com/github-token-stealing/).

### Comprendre GitHub.dev et le flux de tokens
**GitHub.dev** fonctionne comme un [éditeur de code source léger basé sur le web](https://docs.github.com/en/codespaces/the-githubdev-web-based-editor) directement dans le bac à sable d'un navigateur web, facilitant des actions telles que l'envoi de pull requests et la réalisation de commits. Cette fonctionnalité repose sur **github.com** qui POSTe de manière sécurisée un token **OAuth** à **GitHub.dev**, l'autorisant à interagir avec **GitHub** au nom de l'utilisateur.
De manière cruciale, ce token **OAuth** n'est pas limité à un dépôt spécifique. Au lieu de cela, il accorde un accès complet à tous les dépôts auxquels l'utilisateur peut accéder, rendant sa compromission très impactante.
### Le mécanisme d'exploit
La vulnérabilité permet aux attaquants d'installer des extensions **VS Code** malveillantes qui interceptent ces tokens **GitHub OAuth** sensibles. Le cœur de l'exploit réside dans l'abus d'un [mécanisme de passage de messages](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) entre la fenêtre principale de **VS Code** et ses [webviews](https://code.visualstudio.com/api/extension-guides/webview), qui sont utilisés pour le rendu de contenu tel que les aperçus Markdown ou les notebooks Jupyter.

Plus précisément, l'exploit exécute du JavaScript malveillant dans une webview non fiable. Ce script simule des frappes clavier (**Ctrl+Shift+P**) dans la fenêtre principale de l'éditeur, ouvrant la **Palette de Commandes**. Il installe ensuite par programmation une extension contrôlée par l'attaquant. Cette extension malveillante extrait ensuite le token **GitHub OAuth** passé à **GitHub.dev** et interroge l'**API GitHub** pour énumérer tous les dépôts privés accessibles à la victime.
### Contournement des vérifications de confiance
L'attaque exploite en outre une fonctionnalité de **VS Code** connue sous le nom d'[extensions d'espace de travail local](https://code.visualstudio.com/updates/v1_89#_local-workspace-extensions). Cette fonctionnalité permet aux extensions d'être installées directement en les plaçant dans le dossier `.vscode/extensions` au sein d'un espace de travail, contournant ainsi efficacement la [fenêtre d'invite de confiance](https://code.visualstudio.com/docs/configure/extensions/extension-runtime-security#_extension-publisher-trust) standard.
Askar a expliqué : « Ce n'est cependant qu'un petit contretemps, l'une des choses que les extensions peuvent faire dans le cadre de leur package.json est de contribuer des raccourcis clavier supplémentaires à VS Code. Puisque nous pouvons déclencher de manière fiable des raccourcis clavier, nous pouvons simplement ajouter un raccourci pour n'importe quelle commande VS Code que nous voulons, comme l'installation d'une extension tout en ignorant la vérification de l'éditeur de confiance. »
### Divulgation et réponse de Microsoft
**GitHub** a été [informé](https://github.com/microsoft/vscode/issues/319593) de cette vulnérabilité le 2 juin 2026. Cependant, les détails du problème ont été rendus publics peu après, une décision qu'**Askar** a attribuée à la manière dont **Microsoft** a géré [par le passé](https://blog.ammaraskar.com/vscode-rce/) des [bugs similaires liés à VS Code](https://starlabs.sg/blog/2025/05-breaking-out-of-restricted-mode-xss-to-rce-in-visual-studio-code/).
Initialement, **Microsoft** a reconnu la vulnérabilité et a confirmé qu'elle travaillait sur un correctif. **Alexandru Dima**, un responsable de l'ingénierie logicielle chez **Microsoft**, a précisé que « ce problème n'affecte pas **VS Code Desktop** ».
### Mise à jour : Vulnérabilité atténuée
Suite à la divulgation publique, **Microsoft** a confirmé que la vulnérabilité a été corrigée. « Ce problème a été atténué pour nos services et aucune action de la part des clients n'est requise », a déclaré un porte-parole de **Microsoft**, indiquant que les utilisateurs de **GitHub.dev** sont désormais protégés. Ghost Protocol continuera de surveiller les détails supplémentaires sur le correctif et les avis de sécurité connexes.