El investigador de seguridad Ammar Askar reveló una vulnerabilidad en el editor web GitHub.dev que permitía a un atacante robar el OAuth token de un usuario de GitHub al hacer clic en un enlace especialmente diseñado. Según el investigador, el token robado otorgaba acceso de lectura y escritura a todos los repositorios de la víctima, incluidos los privados. Microsoft confirmó el problema e informó de su corrección el 3 de junio de 2026. La vulnerabilidad no afecta a la versión de escritorio de VS Code, solo al entorno en el navegador GitHub.dev.
Mecanismo de ataque: del clic al acceso completo
GitHub.dev es un editor de código web ligero que ejecuta el entorno de VS Code directamente en el navegador. Permite a los usuarios crear commits y enviar pull requests sin instalar software local. Para la autorización, github.com envía un OAuth token a github.dev mediante una petición POST. Según indica el investigador, este token no está limitado a un repositorio concreto y proporciona acceso a todos los repositorios disponibles para el usuario.
La cadena de ataque descrita en la investigación explota el mecanismo de intercambio de mensajes (postMessage) entre la ventana principal de VS Code y los componentes webview, que se utilizan para renderizar la previsualización de Markdown y trabajar con cuadernos Jupyter. El ataque se desarrolla en varias etapas:
- JavaScript malicioso dentro de un webview no confiable imita pulsaciones de teclas (eventos keydown) en la ventana principal del editor.
- La combinación simulada Ctrl+Shift+P abre la paleta de comandos de VS Code.
- A través de la paleta se instala una extensión controlada por el atacante.
- La extensión intercepta el OAuth token enviado a GitHub.dev y, mediante la GitHub API, enumera todos los repositorios privados accesibles para la víctima.
Elusión de la comprobación de confianza del publicador
El elemento clave del ataque es el uso de la función de extensiones locales del espacio de trabajo. VS Code permite instalar extensiones directamente desde la carpeta .vscode/extensions dentro del espacio de trabajo sin mostrar el diálogo adicional de confirmación de confianza en el publicador. Según el investigador, las extensiones también pueden registrar sus propios atajos de teclado a través de package.json, lo que permite invocar comandos arbitrarios de VS Code, incluida la instalación de extensiones, eludiendo la comprobación del publicador de confianza.
Productos afectados y estado de la corrección
La vulnerabilidad afecta exclusivamente a GitHub.dev y al entorno en navegador VS Code for the Web. Tal como confirmó Alexandru Dima, partner development manager en Microsoft: «Este problema no afecta a VS Code Desktop».
La cronología de los hechos merece una atención especial. El investigador notificó a GitHub sobre la vulnerabilidad el 2 de junio de 2026 y, una hora más tarde, publicó los detalles en acceso abierto. Askar justificó esta decisión por su experiencia previa de interacción con Microsoft en problemas similares en VS Code. Microsoft comunicó que la vulnerabilidad se había corregido en el lado del servicio el 3 de junio de 2026 a las 7:30 de la mañana, hora del Pacífico. Según la compañía, no se requieren acciones por parte de los usuarios.
Cabe señalar que a esta vulnerabilidad no se le asignaron ni identificador CVE ni puntuación CVSS. El PoC exploit público está disponible en el blog del investigador.
Evaluación del impacto
El posible alcance del problema viene determinado por dos factores. En primer lugar, GitHub.dev está disponible para cualquier usuario de GitHub: basta con pulsar la tecla «.» en cualquier repositorio. En segundo lugar, según afirma el investigador, el OAuth token no estaba limitado al ámbito de un repositorio concreto, lo que implica la posible compromisión de todos los repositorios a los que la víctima tiene acceso. Para las organizaciones que almacenan código propietario, configuraciones de infraestructura o secretos en repositorios privados, las consecuencias podrían haber sido críticas: desde la filtración de código fuente hasta la compromisión de la cadena de suministro de software.
Recomendaciones
- Revisión de la actividad de los tokens. A las organizaciones que utilizan activamente GitHub.dev se les recomienda revisar los registros de auditoría de GitHub en busca de operaciones sospechosas con la API anteriores al 3 de junio de 2026, especialmente solicitudes masivas a la lista de repositorios.
- Rotación de tokens. Si hay motivos para pensar que los usuarios pudieron hacer clic en enlaces sospechosos que apuntaban a GitHub.dev, es aconsejable revocar y volver a emitir los OAuth tokens desde la configuración de GitHub.
- Limitación del alcance de los tokens. Para los repositorios de importancia crítica, conviene utilizar fine-grained personal access tokens con los permisos mínimos necesarios en lugar de OAuth tokens con privilegios completos.
- Control de extensiones. En entornos corporativos, limitar la lista de extensiones de VS Code permitidas mediante las políticas de la organización.
Este incidente pone de manifiesto un problema sistémico: los entornos de desarrollo web heredan el modelo de seguridad del navegador, pero al mismo tiempo manejan tokens con amplios privilegios. A pesar de la rápida corrección por parte de Microsoft, las organizaciones que utilicen GitHub.dev para trabajar con repositorios privados deberían auditar los registros de GitHub anteriores al 3 de junio y asegurarse de que el principio de privilegios mínimos se aplica a los tokens de acceso.