Tokens GitHub roubados em um clique
Um pesquisador de segurança divulgou nesta terça-feira (3) um zero-day no Visual Studio Code que permite roubar tokens OAuth do GitHub com um único clique. A vulnerabilidade afeta tanto o editor web github.dev quanto a versão desktop, e o exploit já foi publicado com código funcional.
A descoberta é de Ammar Askar, que demonstrou como um link malicioso pode desencadear uma cadeia de cinco etapas que culmina na exfiltração do token OAuth não-escalonado do GitHub — concedendo ao atacante acesso de leitura e escrita a todos os repositórios privados da vítima. Na versão desktop, o exploit atinge execução remota de código (RCE) completa.
Como o exploit funciona
O problema central está no modelo de segurança das webviews do VS Code. O editor registra um handler did-keydown que encaminha eventos de teclado de webviews não-confiáveis para a janela principal via postMessage. Isso permite atalhos como Ctrl+Shift+P dentro de iframes sandboxed.
O atacante explora esse canal para simular teclas sintéticas. O payload JavaScript dentro de um notebook Jupyter malicioso (usando <img onerror>) despacha um evento Ctrl+Shift+A, que aceita automaticamente a instalação silenciosa de uma extensão maliciosa recomendada pelo workspace.
No github.dev, workspaces são sempre confiáveis, então a verificação de publisher é contornada. A extensão instalada acessa o token OAuth previamente carregado, enumera repositórios privados via API do GitHub e exfiltra tudo em menos de um minuto — sem interação adicional.
| Plataforma | Vetor | Impacto |
|---|---|---|
| github.dev (navegador) | Um clique em link | Roubo de token OAuth — acesso total a repositórios |
| VS Code Desktop | Clonar e abrir repositório do atacante | RCE via APIs Node.js (child_process) |
Falhas na barreira de segurança
A arquitetura do VS Code isola webviews na origem vscode-webview://, separando-as do editor principal em vscode-file://. A comunicação entre essas origens deveria usar postMessage de forma segura. O encaminhamento de teclado quebra essa separação: JavaScript não-confiável consegue emitir comandos que o editor interpreta como ações legítimas do usuário.
Mitigações existentes como Content Security Policy restritiva (script-src 'none') e sanitização DOMPurify impediram caminhos mais simples de RCE via páginas de extensão Marketplace, mas não bloquearam o encaminhamento de teclado sintético.
Linha do tempo da vulnerabilidade
- Junho de 2026: Ammar Askar publica análise completa e código de exploit funcional em seu blog
- Prazo de divulgação: pesquisador relata ter notificado a Microsoft/GitHub antes da publicação
- Status: patch não confirmado publicamente pela Microsoft no momento da divulgação
Esta falha segue uma série de incidentes recentes envolvendo extensões maliciosas do VS Code e um ataque de supply chain que comprometeu milhares de repositórios GitHub.
O que desenvolvedores devem fazer agora
Enquanto um patch oficial não é lançado, medidas imediatas incluem: limpar dados do site github.dev no navegador (cookies e cache), revogar tokens OAuth ativos do GitHub em Settings > Developer settings > Personal access tokens, e evitar abrir repositórios desconhecidos tanto na versão web quanto desktop do VS Code.
Para equipes corporativas, é recomendável restringir o uso de github.dev via políticas de navegador e auditar tokens OAuth com acesso amplo a repositórios privados. Extensões recém-instaladas devem ser revisadas e removidas se não forem reconhecidas.