Análise Principal
Segurança & Risco5 min

GitHub confirma origem de brecha em 3.800 repositórios: extensão adulterada do VS Code foi o vetor de entrada

Monitor com editor de código exibindo alerta de segurança em extensão de IDE comprometida

O CISO da GitHub atribuiu nesta quinta-feira a invasão de 3.800 repositórios internos a uma versão maliciosa da extensão Nx Console para VS Code, ligada ao ataque de cadeia de suprimentos contra pacotes npm do TanStack em 11 de maio.

Na tarde de quinta-feira, 21 de maio, a GitHub tornou pública a causa raiz de uma das maiores exposições de código privado já documentadas em uma plataforma de desenvolvimento. A extensão Nx Console para Visual Studio Code, na versão 18.95.0 publicada no marketplace oficial da Microsoft, foi o vetor que permitiu ao grupo TeamPCP acessar e exfiltrar aproximadamente 3.800 repositórios internos da própria GitHub. A Grafana Labs e a OpenAI confirmaram exposições decorrentes da mesma campanha.


A Nx Console conta com 2,2 milhões de instalações ativas. A janela de comprometimento durou menos de vinte minutos, tempo suficiente para que a carga maliciosa coletasse credenciais de CI/CD, tokens de acesso pessoal e segredos de ambiente em qualquer instância que executou a atualização automática da extensão durante o período.


A origem: TanStack e o worm Mini Shai-Hulud


O ataque começa dez dias antes, em 11 de maio. O grupo TeamPCP executou um ataque coordenado contra o repositório GitHub do TanStack, biblioteca JavaScript utilizada em front-end corporativo por dezenas de milhares de projetos. Em seis minutos, 84 artifacts maliciosos foram distribuídos em 42 pacotes do namespace @tanstack no npm. A técnica explorou uma misconfiguration de escopo de confiança OIDC no pipeline de GitHub Actions do TanStack: o workflow autorizava qualquer branch do repositório, e não apenas branches protegidas.


Com as credenciais de um desenvolvedor legítimo do TanStack obtidas nesse ataque, o TeamPCP acessou o repositório do projeto Nx no GitHub e publicou a versão 18.95.0 da Nx Console diretamente no VS Code Marketplace. A propagação é operada pelo worm Mini Shai-Hulud, desenvolvido pelo grupo para automatizar ataques de cadeia de suprimentos: o worm rouba credenciais de pipelines de CI/CD e as utiliza para publicar versões maliciosas de pacotes dependentes, expandindo o alcance do ataque a cada ciclo.


A carga entregue pela extensão funcionava como um credential stealer multi-estágio, exfiltrando dados via HTTPS e via GitHub API. Em sistemas macOS, o payload instalava ainda um backdoor Python que utilizava a GitHub Search API como canal de comando e controle.


Grafana Labs: uma rotacao de token que nao se completou


A Grafana Labs confirmou, também na quinta-feira, que sua exposição resultou de um token de acesso ao ambiente GitHub não incluído no processo de rotação de credenciais iniciado após a detecção do ataque TanStack. Com esse token, o TeamPCP acessou repositórios privados da empresa e baixou código-fonte. A Grafana afirmou que dados de usuários finais não foram comprometidos.


A OpenAI havia confirmado previamente que dois dispositivos corporativos foram comprometidos durante o ataque TanStack em 11 de maio, com exfiltração de credenciais e acesso a um subconjunto limitado de repositórios internos. A empresa disse não ter encontrado evidências de acesso a dados de usuários ou a sistemas de produção.


O padrão que une os três casos é o mesmo: rotação de credenciais executada manualmente, sem inventário automatizado de todas as integrações ativas, produz exceções que atacantes sofisticados identificam e exploram. Organizações com dezenas de integrações de terceiros conectadas ao GitHub têm, em média, mais de 400 tokens ativos segundo pesquisas do setor, tornando a rotação manual sistematicamente incompleta.


O que equipes de segurança precisam fazer agora


Para organizações que utilizam VS Code em pipelines de desenvolvimento, a prioridade imediata é auditar quais extensões têm acesso a variáveis de ambiente e credenciais de repositório. A versão 18.95.0 da Nx Console deve ser considerada comprometida; versões anteriores e posteriores não foram adulteradas, segundo a equipe do projeto Nx.


A GitHub orientou que qualquer organização que instalou a extensão durante a janela de exposição rotacione imediatamente todos os tokens de acesso pessoal, chaves de deploy e credenciais de GitHub Actions. O risco é equivalente no GitHub Enterprise Server e na versão cloud.


O TeamPCP reivindicou publicamente a autoria do ataque e anunciou que os dados obtidos estão disponíveis para compra em fóruns criminosos. Empresas de consultoria que prestam serviços de desenvolvimento com acesso a repositórios de clientes devem verificar se qualquer credencial compartilhada estava ativa durante o período de comprometimento.


O incidente expõe uma lacuna formal no modelo de distribuição de extensões de IDE: o marketplace da Microsoft hospeda mais de 60.000 extensões sem mecanismo de verificação de integridade obrigatório. Uma janela de comprometimento de menos de vinte minutos em uma extensão com milhões de usuários é suficiente para atingir infraestrutura crítica em escala global. A adoção de padrões de proveniência equivalentes ao SLSA para extensões de IDE ainda não é exigida por nenhum framework de segurança amplamente adotado, deixando essa superfície de ataque sem controle formal.

Análise Principal