Un zero-day dans Visual Studio Code permet de voler un token GitHub OAuth en un seul clic. Environ 3 700 dépôts internes GitHub ont été compromis avant le correctif déployé le 3 juin 2026.
En bref
- Un zero-day dans Visual Studio Code permet de voler un token GitHub OAuth en un seul clic, donnant accès à l'ensemble des dépôts de la victime.
- La faille, divulguée publiquement le 2 juin 2026 par le chercheur Ammar Askar après l'échec du processus de divulgation responsable via le MSRC, a conduit à la compromission de plus de 3 700 dépôts internes GitHub.
- Microsoft a déployé un correctif partiel le 3 juin ; une mise à jour immédiate de VS Code et une vérification des tokens actifs sont impératives.
Une faille en cinq étapes qui contourne toute la chaîne de confiance GitHub
Le 2 juin 2026, le chercheur en sécurité Ammar Askar a opté pour la divulgation intégrale (full disclosure) d'une vulnérabilité critique dans Visual Studio Code affectant l'intégration github.dev. Cette décision, assumée et documentée sur son blog personnel, fait suite à plusieurs expériences négatives avec le Microsoft Security Response Center (MSRC), que le chercheur décrit comme refusant systématiquement d'attribuer des identifiants CVE à des classes de vulnérabilités jugées hors périmètre. La publication immédiate d'un code de preuve de concept (PoC) complet a précipité Microsoft à livrer un correctif partiel en moins de 24 heures.
Pour comprendre la faille, il faut d'abord saisir le mécanisme de github.dev. Cette fonctionnalité de GitHub lance un environnement VS Code léger directement dans le navigateur, permettant aux développeurs de parcourir des dépôts, d'ouvrir des pull requests et d'effectuer des commits sans installation locale. Pour que cette expérience soit transparente, GitHub.com transmet via un POST un token OAuth à github.dev. Ce token, point central du problème, n'est pas limité au dépôt consulté : il dispose d'un accès complet à l'ensemble des dépôts auxquels l'utilisateur a accès, privés compris.
L'attaque repose sur une chaîne de cinq comportements VS Code exploités en séquence. La première étape consiste à amener la victime à ouvrir un fichier Jupyter Notebook malveillant au format .ipynb. Ce type de fichier est extrêmement répandu dans les environnements de data science, de machine learning et de recherche scientifique. Un attaquant peut le déposer dans un dépôt public ou l'envoyer directement à une cible. La victime n'a qu'à cliquer sur le bouton natif « Open in github.dev » depuis l'interface GitHub pour déclencher l'exploitation, sans aucune autre interaction requise.
À l'intérieur du fichier .ipynb, une balise HTML image avec un gestionnaire d'événements onerror contient du JavaScript obfusqué. Lorsque VS Code charge le notebook dans son renderer Jupyter intégré, ce code s'exécute dans une iframe webview considérée isolée — mais l'isolation s'avère insuffisante. L'exploitation enchaîne ensuite trois comportements supplémentaires : l'accès aux APIs internes de l'extension VS Code via des messages inter-processus, l'installation silencieuse d'une extension malveillante en exploitant des commandes d'extension non verrouillées, et finalement la lecture du token OAuth depuis le contexte d'authentification de github.dev. Ce token est exfiltré vers l'infrastructure de l'attaquant sans qu'aucun avertissement s'affiche à l'écran.
L'impact réel de la faille a été considérable. Selon les informations rapportées par SecurityWeek et BleepingComputer, des attaquants ont exploité la vulnérabilité avant la publication du patch et ont compromis environ 3 700 dépôts internes GitHub. La rapidité inhabituelle du correctif de Microsoft — moins de 24 heures après la divulgation publique — et la mobilisation immédiate des équipes de sécurité de GitHub suggèrent fortement une exploitation active antérieure à la publication du chercheur.
Le correctif déployé par Microsoft le 3 juin 2026 consiste principalement à insérer une boîte de dialogue de confirmation lors de l'ouverture de certains types de fichiers via github.dev, rompant la fluidité du one-click qui rendait l'attaque si efficace. Microsoft a également bloqué l'exécution des commandes d'extension potentiellement dangereuses permettant l'installation silencieuse de code malveillant. Selon Cyber Kendra, Askar a délibérément contourné le MSRC estimant que la classe de vulnérabilité concernée n'aurait pas été traitée sérieusement dans un délai raisonnable.
La nature du token compromis amplifie drastiquement la portée de l'attaque. Un token OAuth GitHub peut donner accès aux secrets stockés dans les dépôts privés (clés API, credentials d'infrastructure, tokens CI/CD), aux historiques de commits contenant des informations sensibles non purgées, ainsi qu'aux configurations d'organisations et de webhooks. Dans un contexte d'entreprise, un seul développeur compromis peut exposer l'intégralité de la surface de code d'une organisation si ses droits d'accès sont étendus.
La version corrigée est disponible dans VS Code 1.100.3 et dans les builds github.dev mis à jour le 3 juin 2026. Les équipes de sécurité sont invitées à vérifier l'ensemble des tokens GitHub actifs dans les paramètres « Developer Settings » de chaque compte, à révoquer tout token non reconnu, et à auditer les journaux d'accès aux dépôts pour détecter d'éventuelles activités anormales du 1er au 3 juin 2026.
Quand la divulgation responsable devient un jeu de pouvoir avec les éditeurs
Cette affaire illustre une tension de plus en plus visible dans l'écosystème de la sécurité offensive : que faire lorsque le canal de divulgation responsable ne fonctionne pas ? La décision d'Ammar Askar de publier un PoC complet sans délai de grâce est certes controversée, mais elle s'inscrit dans une logique documentée par de nombreux chercheurs. Le MSRC de Microsoft est régulièrement critiqué pour son périmètre d'éligibilité restrictif et ses délais de traitement. En 2023, la vulnérabilité Storm-0558 sur les tokens Azure Active Directory avait déjà révélé des angles morts institutionnels chez Microsoft en matière de gestion des tokens d'authentification cloud.
L'incident met également en lumière un risque systémique sous-estimé : la convergence des environnements de développement vers le cloud. github.dev, VS Code for the Web, GitHub Codespaces et leurs équivalents chez JetBrains ou GitLab représentent une surface d'attaque en pleine expansion. Ces outils réduisent la friction pour les développeurs mais concentrent des niveaux d'accès considérables dans des contextes (navigateurs, webviews, iframes imbriquées) dont le modèle de sécurité est structurellement plus complexe qu'une application native.
Pour les entreprises, le risque ne se limite pas au poste d'un développeur isolé. Dans les organisations pratiquant le développement cloud-native, de nombreux pipelines CI/CD, bots de revue de code et automatisations GitHub Actions réutilisent des tokens OAuth à longue durée de vie avec des portées larges. Une compromission de ce type de token peut donc permettre non seulement le vol de code source, mais aussi la manipulation de pipelines de déploiement en production — ouvrant la voie à des attaques supply chain software particulièrement dévastatrices.
L'épisode rappelle enfin que les fichiers Jupyter Notebook constituent un vecteur d'attaque mature et insuffisamment surveillé dans la plupart des politiques de sécurité d'entreprise. La popularité explosive de ces fichiers dans les environnements d'IA et de data science, combinée à la culture de partage ouvert de ces communautés sur GitHub et Hugging Face, en fait un vecteur particulièrement insidieux et difficile à surveiller.
Ce qu'il faut retenir
- Mettez immédiatement à jour VS Code vers la version 1.100.3 et révoquez les tokens GitHub OAuth suspects dans vos paramètres développeur.
- Auditez les accès à vos dépôts GitHub sur la période du 1er au 3 juin 2026 pour détecter toute activité anormale, en particulier depuis des adresses IP inconnues.
- Traitez les fichiers .ipynb partagés par des tiers comme des fichiers exécutables potentiellement dangereux, même dans des contextes cloud comme github.dev.
Comment savoir si mon token GitHub a été compromis ?
Rendez-vous dans les paramètres de votre compte GitHub, section « Developer settings » puis « Personal access tokens » et « Authorized OAuth Apps ». Révoquez tout token ou application que vous ne reconnaissez pas. Consultez le journal d'audit de votre organisation (Settings > Audit log) et filtrez les événements d'accès aux dépôts entre le 1er et le 3 juin 2026. Tout accès depuis une adresse IP inconnue ou via un user-agent inhabituel doit être investigué. En cas de doute, révoquez tous les tokens actifs et régénérez-les.
Besoin d'un accompagnement expert ?
Ayi NEDJIMI vous accompagne sur vos projets cybersécurité et IA.
Prendre contactUn projet cybersécurité ?
Expert dispo · Réponse 24h