Afirmó sin rodeos que no tenía «ningún interés» en volver a lidiar con el proceso del MSRC . El fallo anterior fue reportado inicialmente al programa HackerOne de GitHub, que explícitamente le indicó que estaba fuera de su alcance y que lo derivara al MSRC, un pase burocrático que dejó el hallazgo sin compensación ni reconocimiento
.
El exploit orquesta tres vulnerabilidades en una cadena perfecta que atraviesa todas las barreras de seguridad de github.dev.
Los webviews de VS Code —los entornos aislados que renderizan Jupyter Notebooks, vistas previas de Markdown y contenido similar— están diseñados para ser compartimentos estancos. Pero para que los atajos de teclado funcionen dentro de ellos, el editor reenvía los eventos de teclas desde el webview en sandbox hacia el proceso principal del editor .
Un Jupyter Notebook malicioso dentro del repositorio del atacante envía eventos de teclado sintéticos (Ctrl+Shift+A, Ctrl+F1) desde el webview aislado directamente a la ventana principal de VS Code . Estas pulsaciones activan silenciosamente el comando «Instalar extensión» y evitan el diálogo de verificación de confianza del editor que normalmente bloquea las extensiones no verificadas
.
El repositorio del atacante contiene una extensión de VS Code preempaquetada en una carpeta .vscode/extensions. Dado que github.dev trata las extensiones que acompañan al espacio de trabajo como implícitamente confiables, la extensión maliciosa se instala sin ninguna solicitud de permiso al usuario .
Una vez en ejecución, la extensión maliciosa obtiene acceso total al entorno de tiempo de ejecución de github.dev. Ese entorno contiene un token OAuth de GitHub que github.com envía silenciosamente mediante POST a github.dev cada vez que se abre un repositorio. El detalle crítico es que este token no está limitado al repositorio abierto en ese momento: posee todos los privilegios de acceso del usuario . La extensión extrae el token, consulta la API de GitHub para obtener la lista de repositorios privados de la víctima y exfiltra tanto el token como los metadatos al atacante
.
El resultado: acceso completo de lectura y escritura a todos los repositorios públicos y privados a los que la víctima puede llegar, logrado con solo hacer clic en un enlace .
Microsoft reconoció la vulnerabilidad el 2 de junio de 2026 y confirmó que había sido mitigada para sus servicios, específicamente github.dev y VS Code para la Web .
El 3 de junio, Microsoft desplegó correcciones del lado del servidor que incluían un paso de confirmación de confianza al abrir notebooks basados en navegador y el bloqueo de información arbitraria del llamante en el comando de instalación de extensiones . Para el 4 de junio, se implementaron restricciones adicionales en el manejo de eventos de los webviews
.
Microsoft declaró que el problema no afecta a VS Code de escritorio . Sin embargo, el patrón subyacente —confiar en extensiones de espacio de trabajo con verificación insuficiente— plantea preocupaciones para cualquier usuario de VS Code que abra repositorios no confiables en local.
La cadena de explotación es notable por tres razones.
Primero, la superficie de ataque es una URL. Las víctimas no descargan un archivo, no abren una terminal ni aprueban un permiso. El único requisito previo es un enlace del navegador a github.dev.
Segundo, el alcance del token es alarmantemente amplio. El token OAuth que github.com pasa a github.dev no se limita al repositorio que se está visualizando. Lleva los permisos completos del usuario en GitHub, lo que significa que un atacante que comprometa a un desarrollador que trabaja en un proyecto público de código abierto también obtiene credenciales para los repositorios privados del empleador de ese desarrollador .
Tercero, la confianza en el espacio de trabajo está invertida. La funcionalidad que facilita el desarrollo local —confiar en las extensiones que acompañan a un proyecto— se convierte precisamente en el mecanismo que otorga ejecución automática al código malicioso.
En una divulgación paralela, varios investigadores publicaron cinco vulnerabilidades de día cero en el framework de agentes de IA OpenClaw que permiten a los atacantes hacerse pasar por usuarios autorizados y secuestrar el acceso confiable de agentes de IA en múltiples plataformas de mensajería .
La causa raíz es arquitectónica: OpenClaw admite 15 adaptadores de canal diferentes —Telegram, Slack, Discord, WhatsApp y más— y cada adaptador implementa de forma independiente su propia autorización de listas de permitidos y verificación de webhooks . Los campos de identidad críticos para la seguridad utilizados en las listas de permitidos, como los nombres de usuario legibles, son mutables a nivel de plataforma y se resuelven en identificadores de usuario estables de manera inconsistente entre los distintos adaptadores
.
Debido a que no existe una capa centralizada de aplicación de políticas, los atacantes pueden:
Un análisis de seguridad publicado en arXiv el 3 de junio de 2026 identificó vulnerabilidades en múltiples capas arquitectónicas (política de ejecución, puerta de enlace, canal, sandbox, navegador, plugin y prompt), siendo el patrón estructural dominante la aplicación de confianza por capa y por punto de llamada, en lugar de límites de política unificados . El análisis concluyó que debilidades arquitectónicas discretas se componen en rutas completas de ejecución remota de código sin autenticación
.
Comments
0 comments