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.

Fontes