A segurança de desenvolvedores e seus projetos no GitHub foi colocada à prova por uma falha no VS Code. Um pesquisador de segurança revelou um bug que permitia o roubo de tokens de acesso ao GitHub com uma única interação do usuário, em um ataque que ele chamou de “1-Click GitHub Token Stealing”.
A vulnerabilidade residia na forma como o VS Code, o popular editor de código da Microsoft, lidava com links maliciosos. Um atacante poderia criar um link especialmente elaborado que, ao ser clicado por um usuário desavisado, ativaria um comando interno do VS Code. Esse comando era capaz de expor o token de acesso do GitHub do usuário, permitindo que o invasor acessasse e manipulasse seus repositórios.
Como o ataque se desenrolava
O conceito por trás do ataque é engenhoso e explora uma funcionalidade legítima do VS Code. O editor de código possui um mecanismo para executar comandos internos através de URLs. Por exemplo, uma URL como vscode://microsoft.vscode-editor/file/%temp%/README.md abriria um arquivo específico no VS Code.
O ponto chave da vulnerabilidade era o comando github.copilot.generate. Embora o nome sugira uma função relacionada ao GitHub Copilot, a extensão que fornece sugestões de código, o comando em si não tinha validação robusta. Um invasor poderia criar um link que ativasse esse comando, passando como argumento um endereço controlado pelo atacante. Quando o usuário clicasse no link, o VS Code tentaria “gerar” algo, mas na verdade estaria redirecionando o token de autenticação para o servidor do hacker.
O pesquisador detalhou que o processo era quase invisível para a vítima. Após o clique, o token de autenticação, que geralmente tem um escopo amplo de permissões, seria enviado para o servidor do atacante. Com esse token, o criminoso poderia realizar diversas ações maliciosas, como acessar repositórios privados, injetar código, ou até mesmo apagar projetos inteiros.
A resposta da Microsoft
A falha foi reportada à Microsoft no dia 16 de maio de 2024. A empresa agiu rapidamente para corrigir o problema. Em 29 de maio de 2024, menos de duas semanas após a notificação, a Microsoft lançou uma atualização para o VS Code que mitigava a vulnerabilidade. A correção envolveu uma melhor validação dos argumentos passados aos comandos internos e restrições sobre quais URLs podem ser usadas em certos contextos.
Apesar da correção, a existência de tal vulnerabilidade ressalta a importância de cautela ao interagir com links desconhecidos, mesmo em ambientes aparentemente seguros como um editor de código. Desenvolvedores são alvos frequentes de ataques, e a exposição de tokens de acesso pode ter consequências devastadoras para projetos e empresas. A rápida resposta da Microsoft é um lembrete da importância da comunicação entre pesquisadores de segurança e empresas para manter o ecossistema de software seguro.
A vulnerabilidade foi corrigida em 29 de maio de 2024, após a notificação em 16 de maio de 2024, indicando uma resposta ágil da Microsoft.
Este incidente serve como um alerta para a complexidade da segurança em ferramentas de desenvolvimento, onde a integração e a conveniência podem, por vezes, abrir portas para riscos inesperados.