CEVIU Logo
Voltar

Roubo de tokens GitHub com um clique via bug no VSCode

Aprofundamento CEVIU

Aprofundamento

A falha não é um erro de implementação pontual, mas uma falha estrutural no modelo de confiança entre webviews e iframes no VSCode Web, o mesmo runtime usado no github.dev. Ao contrário do que se supõe, eventos de teclado (como Ctrl+Shift+P) propagam-se do iframe isolado para a janela principal sem restrição, permitindo que código malicioso em um notebook Jupyter execute comandos no editor como se fosse o usuário. Isso contorna não só prompts de instalação de extensões, mas também a proteção de 'extensões de espaço de trabalho local', que normalmente exigiriam permissão explícita para ler arquivos sensíveis.

O token roubado é OAuth v2 com escopo full_repo, ou seja, acesso total a todos os repositórios privados do usuário, inclusive aqueles com segredos em .env, chaves SSH em arquivos de configuração ou tokens de CI/CD em workflows. Isso torna o ataque mais grave que o incidente de maio de 2026 com a extensão maliciosa: lá, o comprometimento dependia da instalação manual de uma extensão; aqui, basta um clique em um link compartilhado por email, Slack ou até um comentário no GitHub Issues.

O que mudou

A cobertura anterior de 25 de maio tratava de uma extensão maliciosa instalada voluntariamente por um desenvolvedor. Agora, o ataque é totalmente não interativo: não há download, não há prompt de permissão, não há necessidade de aceitar termos. A correção lançada em 3 de junho introduziu dois níveis de mitigação: primeiro, bloqueio da propagação de eventos de teclado entre contextos não confiáveis; segundo, desativação automática de extensões de workspace locais em ambientes web, mesmo quando presentes na pasta .vscode/extensions. Isso representa uma mudança de postura da Microsoft: antes, a segurança era delegada ao comportamento do usuário; agora, o runtime web do VSCode passa a impor barreiras técnicas intransponíveis por design.

Por que isso importa

Desenvolvedores usam github.dev como alternativa rápida para revisar PRs, debugar notebooks ou testar mudanças, muitas vezes em ambientes corporativos onde o VS Code Desktop está bloqueado ou não configurado. Essa vulnerabilidade mostra que a conveniência da edição web tem um custo de segurança implícito: o modelo de sandbox do webview não é equivalente ao do navegador. Para equipes que adotam DX baseado em ferramentas web-first, isso exige revisão imediata das políticas de uso de github.dev, auditoria de tokens OAuth com escopo amplo e adoção de PAM (Privileged Access Management) para credenciais de repositório. Não é só sobre evitar links suspeitos, é sobre repensar onde e como o código é executado.

Linha do tempo

  1. Comprometimento de 3.800 repositórios internos do GitHub via extensão maliciosa do VS Code

  2. Divulgação pública da vulnerabilidade por Ammar Askar, com PoC completo

  3. Correção parcial lançada pela Microsoft; correção completa aplicada no mesmo dia

Perguntas frequentes

O VS Code Desktop também foi afetado?

Sim, mas de forma limitada. A Microsoft afirmou que o desktop não é vulnerável ao mesmo vetor de ataque, pois não usa webviews com o mesmo modelo de propagação de eventos. No entanto, pesquisadores indicam que versões antigas do VS Code Desktop ainda permitem execução remota de código via extensões maliciosas carregadas localmente, um cenário distinto, mas com impacto similar. A correção foi aplicada apenas ao github.dev e ao VS Code Web.

Como saber se meu token GitHub já foi roubado?

Verifique o histórico de acessos em Settings > Applications > Authorized OAuth Apps no GitHub. Se houver uma entrada chamada 'GitHub.dev' com data recente e você não usou o editor web nos últimos dias, pode ser sinal de exploração. Também revise logs de acesso a repositórios privados no GitHub Audit Log, busque por requisições feitas por IPs desconhecidos ou em horários incomuns.

Posso continuar usando github.dev com segurança?

Sim, desde que use tokens com escopo mínimo (ex: somente 'repo:status' para CI) e revogue tokens antigos com escopo 'full_repo'. Evite abrir repositórios de fontes não confiáveis no github.dev. Prefira o VS Code Desktop para qualquer tarefa que envolva segredos, pois ele não depende de webviews externos e isola melhor as extensões.

Por que o pesquisador divulgou os detalhes antes da correção?

Ammar Askar relatou ter sofrido má experiência anterior com o MSRC: um bug crítico no VSCode foi corrigido sem crédito e classificado como 'sem impacto'. Ele decidiu publicar o PoC em menos de 1 hora após notificar o GitHub para forçar transparência e garantir que o problema fosse priorizado, uma prática cada vez mais comum entre pesquisadores quando há desconfiança no processo de resposta.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Web Dev
Publicado
03 de junho de 2026
Editoria
CEVIU Web Dev

Quer receber mais sobre CEVIU Web Dev?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser