El incidente revela una vulnerabilidad crítica en la implementación de seguridad de VSCode Web (github.dev) que permite la exfiltración de tokens de GitHub con permisos de lectura/escritura en repositorios privados. La causa raíz reside en una interacción insegura entre el "main editor window" de VSCode y los "webviews" (iframes sandboxed) a través de la API Window.postMessage(). Aunque los webviews están diseñados para aislar la ejecución de JavaScript, VSCode reenvía eventos de teclado (did-keydown) desde el webview al proceso principal para mejorar la experiencia de usuario.
El fallo de seguridad ocurre porque el webview, que puede cargar contenido arbitrario (ej. un Jupyter notebook malicioso), puede simular eventos de teclado como si fueran generados por el usuario. Esto permite al atacante activar atajos de teclado predefinidos en VSCode. La cadena de ataque explota la capacidad de instalar extensiones de "workspace local" sin el chequeo de confianza del editor (ya que github.dev se considera un workspace de confianza) y la capacidad de las extensiones para contribuir con "keybindings" personalizados. Un atacante puede crear un Jupyter notebook que, al ser abierto en github.dev, simula la pulsación de Ctrl+Shift+A para aceptar la recomendación de una extensión maliciosa y luego Ctrl+F1 (o un atajo similar) para ejecutar un comando que instala una extensión controlada por el atacante, saltándose el chequeo de confianza del editor.
Una vez instalada, la extensión maliciosa puede acceder al token de GitHub OAuth que github.dev recibe de github.com. Este token no está limitado al repositorio actual, sino que tiene acceso completo a todos los repositorios del usuario. Las salvaguardas existentes, como el sandboxing de iframes y la Content Security Policy (CSP), fallaron en prevenir este ataque debido a la lógica de reenvío de eventos de teclado y la forma en que se manejan las extensiones de workspace local en el entorno web de VSCode. La CSP bloqueó la ejecución directa de código en extensiones locales, pero no impidió la instalación de extensiones a través de keybindings que luego ejecutan comandos privilegiados.