Uma vulnerabilidade zero-day no Visual Studio Code permite que atacantes roubem o token OAuth do GitHub de um desenvolvedor com um unico clique - concedendo acesso total a todos os repositorios privados que essa conta pode acessar. O pesquisador de seguranca Ammar Askar publicou o exploit em 3 de junho de 2026 e lancou o codigo de prova de conceito sem passar pelo processo oficial de seguranca da Microsoft. Ate o momento desta publicacao, nenhum patch existe e nenhum CVE foi atribuido.
Como funciona o exploit de um unico clique
O ataque comeca quando uma vitima clica em um link especialmente elaborado apontando para o github.dev, a versao do VS Code baseada em navegador que a Microsoft hospeda na nuvem. Assim que a pagina carrega, o JavaScript malicioso incorporado no link e executado dentro de um Webview do VS Code - um componente semelhante a um iframe isolado que o VS Code usa para renderizar a interface de extensoes e conteudo web.
De dentro desse Webview, o script malicioso explora uma falha na API Window.postMessage() do VS Code para simular pressionamentos de teclas no editor principal. Essas teclas simuladas sao usadas para instalar silenciosamente uma extensao maliciosa do VS Code. A extensao entao extrai o token OAuth do GitHub que o github.dev recebeu durante o login e o envia ao atacante. Com esse token, o atacante pode consultar a API do GitHub e acessar todos os repositorios ao alcance da conta da vitima - nao apenas o que estava sendo navegado.
Toda a cadeia - clique, execucao no Webview, instalacao da extensao, extracao do token - leva segundos e nao requer nenhuma interacao adicional da vitima.
Por que o modelo de seguranca Webview do VS Code falha aqui
O VS Code isola o conteudo do Webview para impedir que extensoes nao confiadas toquem diretamente no ambiente do editor principal. Em teoria, o isolamento significa que um Webview malicioso so pode se comunicar com o mundo externo por meio de canais de passagem de mensagens cuidadosamente definidos.
Na pratica, a ponte Window.postMessage() que encaminha eventos de teclado entre um Webview e o editor principal nao valida corretamente a origem ou a intencao dessas mensagens. O exploit de Askar alimenta a ponte com um fluxo de eventos de teclas falsos que formam comandos de terminal para instalar uma extensao - e o VS Code os executa obedientemente.
A vulnerabilidade esta na intersecao de duas escolhas de design: o recurso de conveniencia de encaminhamento de eventos de teclado e a confianca que o VS Code deposita nas mensagens que chegam por esse canal. Desabilitar os Webviews completamente quebraria grande parte do ecossistema de extensoes, entao nao ha uma solucao de configuracao simples.
Quais dados estao realmente em risco
Um token OAuth do GitHub roubado e muito mais valioso do que a senha de um unico repositorio. Os tokens OAuth limitam o acesso ao nivel da conta, o que significa que o atacante herda todas as permissoes que a conta da vitima possui: leitura e clonagem de codigo privado, envio de commits maliciosos, modificacao de configuracoes de pipeline CI/CD, acesso a segredos armazenados nas configuracoes do repositorio e enumeracao de cada projeto privado ao qual o desenvolvedor contribui - incluindo os pertencentes ao seu empregador ou clientes.
Para desenvolvedores que trabalham com software proprietario, ferramentas internas ou infraestrutura sensivel a seguranca, o roubo de um unico token pode se traduzir em um vazamento completo do codigo-fonte, um ataque a cadeia de suprimentos ou acesso persistente via backdoor aos sistemas de producao. O ataque e silencioso: a vitima nao ve nada incomum durante ou apos o exploit.
Por que o pesquisador ignorou o processo de bug bounty da Microsoft
Askar escolheu a divulgacao publica completa especificamente por causa de um incidente anterior com o Centro de Resposta de Seguranca da Microsoft (MSRC). De acordo com sua postagem no blog, ele havia relatado anteriormente uma vulnerabilidade separada do VS Code pelos canais adequados. A Microsoft corrigiu silenciosamente o bug em uma atualizacao posterior sem creditar Askar, sem publicar um aviso de seguranca e sem reconhecer o impacto de seguranca da falha. Ele considerou esse resultado uma violacao do contrato implicito entre pesquisadores e fornecedores.
Desta vez, Askar deu a equipe de seguranca do GitHub exatamente uma hora de aviso antes de publicar. Ele nao registrou um relatorio na MSRC. Ele tambem lancou codigo de exploit funcional junto com a analise, garantindo que os detalhes tecnicos estivessem imediatamente disponiveis para defensores e para a comunidade de seguranca em geral.
A Microsoft respondeu com uma declaracao dizendo que a empresa "permanece comprometida em avaliar rapidamente os problemas relatados" e em fornecer "mitigacoes, orientacoes e protecoes o mais rapido possivel". A empresa nao reconheceu a reclamacao especifica sobre a correcao nao divulgada anteriormente, nem forneceu um cronograma para corrigir a vulnerabilidade atual.
Como os desenvolvedores podem reduzir sua exposicao
Ate que a Microsoft lance um patch, o passo imediato mais eficaz e limpar cookies e dados locais do site para o github.dev no seu navegador. Isso forca um novo prompt de autenticacao na proxima vez que voce visitar o site, o que aciona um aviso visual se alguma tentativa de exploit ja estiver em andamento. Trate qualquer prompt inesperado de instalacao de extensao do VS Code - especialmente um que voce nao iniciou - como um sinal de alerta e cancele imediatamente.
De forma mais ampla, esse incidente e um lembrete de que os ambientes de desenvolvimento lidam com credenciais altamente sensiveis e que a superficie de ataque e maior do que a maioria dos desenvolvedores assume. Clicar em links em comentarios de revisao de codigo, mensagens de chat ou e-mails que levam ao github.dev ou outros ambientes IDE na nuvem agora e um vetor de risco significativo. Usar uma VPN em redes publicas ou nao confiadas reduz a exposicao a interceptacao de trafego que poderia potencializar essa classe de ataque - por exemplo, interceptando o token em transito ou entregando o link malicioso por meio de uma resposta DNS manipulada.
Desenvolvedores que trabalham com repositorios sensiveis tambem devem auditar os escopos de seus tokens do GitHub e considerar a rotacao de tokens OAuth ativos como medida de precaucao, mesmo antes de um patch estar disponivel. Politicas de privilegio minimo - limitando o que cada token individual pode acessar - reduzem o impacto se um token for comprometido.