Zero-day en VS Code: un clic roba todos tus repositorios de GitHub

04.06.2026 4
Zero-day en VS Code: un clic roba todos tus repositorios de GitHub

Una vulnerabilidad zero-day en Visual Studio Code permite a los atacantes robar el token OAuth de GitHub de un desarrollador con un solo clic - obteniendo acceso total a todos los repositorios privados de esa cuenta. El investigador de seguridad Ammar Askar publico el exploit el 3 de junio de 2026 y lanzo codigo de prueba de concepto sin pasar por el proceso oficial de seguridad de Microsoft. Al momento de esta publicacion, no existe ningun parche ni se ha asignado un CVE.

Como funciona el exploit de un solo clic

El ataque comienza cuando una victima hace clic en un enlace especialmente elaborado que apunta a github.dev, la version de VS Code basada en navegador que Microsoft aloja en la nube. Una vez que la pagina carga, el JavaScript malicioso incrustado en el enlace se ejecuta dentro de un Webview de VS Code - un componente tipo iframe con aislamiento que VS Code usa para mostrar la interfaz de extensiones y contenido web.

Desde dentro de ese Webview, el script malicioso explota un fallo en la API Window.postMessage() de VS Code para simular pulsaciones de teclas en el editor principal. Esas pulsaciones simuladas se usan para instalar silenciosamente una extension maliciosa de VS Code. La extension luego extrae el token OAuth de GitHub que github.dev recibio durante el inicio de sesion y lo envia al atacante. Con ese token, el atacante puede consultar la API de GitHub y acceder a todos los repositorios al alcance de la cuenta de la victima - no solo al que estaba navegando.

Toda la cadena - clic, ejecucion en Webview, instalacion de extension, extraccion del token - tarda segundos y no requiere ninguna interaccion adicional por parte de la victima.

Por que falla el modelo de seguridad de Webview en VS Code

VS Code aísla el contenido de Webview para evitar que extensiones no confiables accedan directamente al entorno del editor principal. En teoria, el aislamiento significa que un Webview malicioso solo puede comunicarse con el exterior a traves de canales de paso de mensajes cuidadosamente definidos.

En la practica, el puente Window.postMessage() que reenvía eventos de teclado entre un Webview y el editor principal no valida correctamente el origen ni la intension de esos mensajes. El exploit de Askar alimenta el puente con un flujo de eventos de teclas falsas que forman comandos de terminal para instalar una extension - y VS Code los ejecuta obedientemente.

La vulnerabilidad se encuentra en la interseccion de dos decisiones de diseno: la funcion de conveniencia de reenvio de eventos de teclado y la confianza que VS Code deposita en los mensajes que llegan a traves de ese canal. Deshabilitar los Webviews por completo romperia gran parte del ecosistema de extensiones, por lo que no existe una solucion de configuracion sencilla.

Que datos estan realmente en riesgo

Un token OAuth de GitHub robado tiene mucho mas valor que una contrasena de un solo repositorio. Los tokens OAuth limitan el acceso a nivel de cuenta, lo que significa que el atacante hereda todos los permisos que tiene la cuenta de la victima: leer y clonar codigo privado, enviar confirmaciones maliciosas, modificar configuraciones de pipeline de CI/CD, acceder a secretos almacenados en la configuracion del repositorio y enumerar cada proyecto privado al que contribuye el desarrollador - incluidos los de su empleador o clientes.

Para los desarrolladores que trabajan con software propietario, herramientas internas o infraestructura sensible a la seguridad, el robo de un solo token puede traducirse en una filtracion completa del codigo fuente, un ataque a la cadena de suministro o acceso persistente de puerta trasera a los sistemas de produccion. El ataque es silencioso: la victima no ve nada inusual durante ni despues del exploit.

Por que el investigador evito el proceso de recompensas por fallos de Microsoft

Askar opto por la divulgacion publica completa especificamente debido a un incidente previo con el Centro de Respuesta de Seguridad de Microsoft (MSRC). Segun su entrada de blog, habia reportado anteriormente una vulnerabilidad separada de VS Code a traves de los canales adecuados. Microsoft corrigio silenciosamente el fallo en una actualizacion posterior sin acreditar a Askar, sin publicar un aviso de seguridad y sin reconocer el impacto de seguridad del fallo. Considero ese resultado como una violacion del contrato implicito entre investigadores y proveedores.

Esta vez, Askar dio al equipo de seguridad de GitHub exactamente una hora de aviso antes de publicar. No presento el informe ante MSRC en absoluto. Tambien lanzo codigo de exploit de prueba de concepto funcional junto con el analisis, asegurando que los detalles tecnicos estuvieran inmediatamente disponibles tanto para los defensores como para la comunidad de seguridad en general.

Microsoft respondio con una declaracion diciendo que la empresa "sigue comprometida con evaluar rapidamente los problemas reportados" y con entregar "mitigaciones, orientacion y protecciones lo mas rapido posible". La empresa no reconocio la queja especifica sobre la correccion no divulgada anteriormente, ni proporciono un calendario para parchear la vulnerabilidad actual.

Como pueden los desarrolladores reducir su exposicion

Hasta que Microsoft lance un parche, el paso inmediato mas efectivo es borrar las cookies y los datos del sitio local de github.dev en tu navegador. Esto obliga a una nueva solicitud de autenticacion la proxima vez que visites el sitio, lo que activa una advertencia visual si hay algun intento de exploit ya en curso. Trata cualquier mensaje inesperado de instalacion de una extension de VS Code - especialmente uno que no hayas iniciado tu - como una senal de alerta y aborta inmediatamente.

En terminos mas generales, este incidente es un recordatorio de que los entornos de desarrollo manejan credenciales muy sensibles y que la superficie de ataque es mayor de lo que la mayoria de los desarrolladores asume. Hacer clic en enlaces en comentarios de revision de codigo, mensajes de chat o correos electronicos que lleven a github.dev u otros entornos IDE en la nube es ahora un vector de riesgo significativo. Usar una VPN en redes publicas o no confiables reduce la exposicion a la interceptacion de trafico que podria potenciar este tipo de ataque - por ejemplo, interceptando el token en transito o entregando el enlace malicioso a traves de una respuesta DNS manipulada.

Los desarrolladores que trabajan con repositorios sensibles tambien deben auditar los alcances de sus tokens de GitHub y considerar rotar los tokens OAuth activos como medida de precaucion, incluso antes de que llegue un parche. Las politicas de menor privilegio - que limitan a que puede acceder cada token individual - reducen el impacto si un token se ve comprometido.

Etiquetas: cybersecurity security internet security usa

Lee también