Vazamento de S1ngularity: GitHub e NPM afetados 🚨
Investigações recentes sobre o ataque à cadeia de suprimentos apelidado de "s1ngularity" contra a Nx revelam um vazamento massivo de credenciais: milhares de tokens de contas e segredos de repositórios foram expostos, com repercussões em várias fases do incidente. Um relatório pós-incidente da Wiz documenta o escopo e fornece insights sobre como a exfiltração evoluiu e seu impacto. 🚨📊
Segundo a avaliação publicada pelos pesquisadores da Wiz, a violação resultou na exposição de 2.180 contas e 7.200 repositórios em três fases distintas, com muitos segredos ainda válidos e risco de danos contínuosO white paper fornece detalhes sobre o cronograma, as técnicas do invasor e a natureza dos segredos vazados. 🔍📈
O Ataque à Cadeia de Suprimentos Nx ⚠️🚀
O Nx é um sistema de compilação e gerenciamento de código aberto e repositório único, amplamente utilizado em ecossistemas JavaScript/TypeScript de escala empresarial. Com milhões de downloads semanais no registro NPM, um pacote comprometido tem um impacto de longo alcance em inúmeras integrações e pipelines de desenvolvimento. ⚙️
Vetor de comprometimento e data do incidente 📅
Em 26 de agosto de 2025, o invasor explorou um fluxo de trabalho vulnerável do GitHub Actions no repositório Nx para publicar uma versão maliciosa do pacote no NPM. O pacote incluía um script malicioso de pós-instalação chamado "telemetry.js", que agia como um malware extrator de credenciais nos sistemas afetados. 🔥
Como funciona o malware telemetry.js 🕵️♂️
O malware telemetry.js atuou como um ladrão de credenciais no Linux e no macOS, tentando roubar tokens do GitHub, tokens npm, chaves SSH, arquivos .env, carteiras de criptomoedas e outros segredos, enviando-os para repositórios públicos do GitHub chamados "s1ngularity-repository". Esse padrão permitiu que o invasor centralizasse e expusesse as informações roubadas. 🔐

Fonte: Wiz
O invasor também integrou ferramentas de linha de comando para plataformas de IA (por exemplo, Claude, Q e Gemini) para automatizar a busca e a coleta usando prompts direcionados. O Wiz documenta como o prompt evoluiu durante o ataque, otimizando a extração e contornando rejeições de modelos para determinadas instruções, refletindo a sintonia ativa do agente com as técnicas de LLM. ✨💡
Alcance do impacto: raio de dano e fases 📈🔥
O incidente se desenrolou em três fases. Na primeira, entre 26 e 27 de agosto, versões comprometidas do Nx afetaram diretamente 1.700 usuários e vazaram mais de 2.000 segredos exclusivos, além de expor cerca de 20.000 arquivos de sistemas infectados. O GitHub interveio, mas grande parte dos dados já havia sido duplicada.
- 🔹 Fase 1 (26 a 27 de agosto): 1.700 usuários afetados, ~2.000 segredos vazados, 20.000 arquivos comprometidos.
- 🔸 Fase 2 (28 a 29 de agosto): Uso de tokens vazados para converter repositórios privados em públicos; 480 contas adicionais comprometidas e 6.700 repositórios expostos.
- 🔹 Fase 3 (a partir de 31 de agosto): ataque direcionado a uma organização vítima usando contas comprometidas para publicar Mais 500 repositórios privados.
Durante a segunda fase, os invasores usaram tokens roubados do GitHub para tornar públicos repositórios privados e renomeá-los com a string "s1ngularity", ampliando a exposição. Na terceira fase, um alvo específico foi explorado para publicar centenas de repositórios privados adicionais, demonstrando a persistência e a escalada do invasor. 🎯

Fonte: Wiz
Resposta e Mitigação do Projeto Nx 🔧✅
A equipe Nx publicou uma análise de causa raiz no GitHub explicando como uma injeção no título de uma solicitação de pull combinada com o uso inseguro de pull_request_target permitiu que código arbitrário fosse executado com permissões elevadas, acionando o pipeline de publicação e facilitando a exfiltração do token de publicação npm. 🛠️
As ações implementadas incluíram a remoção de pacotes maliciosos, a revogação e a rotação de tokens comprometidos e a exigência de autenticação de dois fatores para todas as contas de publishers. Além disso, a Nx adotou o modelo Trusted Publisher da NPM e adicionou aprovação manual para fluxos de trabalho acionados por RP. 🔐📌
Dicas rápidas e pontos-chave ✏️
- ✅ Revise e gire tokens e segredos imediatamente se houver suspeita de comprometimento.
- 📌 Evite o uso inseguro de pull_request_target e imponha aprovações manuais em fluxos confidenciais.
- 🔧 Implemente autenticação multifator e modelos de publicação confiáveis, como o Trusted Publisher.
- ⚡ Monitore repositórios públicos e execute pesquisas secretas automatizadas para detecção precoce.
Definindo Snippets e FAQs ✨
O que é telemetry.js?
telemetry.js é o nome do script malicioso de pós-instalação incluído na versão comprometida do pacote Nx; ele agia como um ladrão de credenciais em sistemas Linux e macOS para coletar e exfiltrar segredos para repositórios públicos controlados pelo invasor. 🔍
Quantas contas e repositórios foram afetados?
De acordo com o relatório da Wiz, o ataque expôs 2.180 contas e 7.200 repositórios ao longo das três fases documentadas do incidente, com muitos segredos ainda válidos e um risco de impacto contínuo. 📊
461 ambientes TP3T tiveram senhas comprometidas, quase o dobro dos 251 TP3T do ano anterior. Obtenha o Relatório Picus Blue 2025 para uma análise completa sobre prevenção, detecção e tendências de exfiltração de dados. 📈
O relatório fornece métricas, recomendações e estudos de caso para fortalecer as defesas e melhorar a resposta a vazamentos secretos.