Descoberta e escopo do ataque
Uma versão comprometida da extensão amplamente utilizada Nx Console VS Code foi publicada no Visual Studio Code Marketplace em 18 de maio de 2026, visando silenciosamente credenciais de desenvolvedores, tokens de infraestrutura em nuvem e segredos de pipeline de CI/CD em milhares de máquinas.
O incidente marca o segundo ataque de cadeia de suprimentos contra o ecossistema Nx em menos de um ano, levantando sérias preocupações sobre a segurança de ferramentas de desenvolvedor de código aberto utilizadas por milhões em todo o mundo.
Vetor de exploração e impacto
A versão 18.95.0 da extensão, identificada como nrwl.angular-console, foi publicada no marketplace com código malicioso oculto dentro de seu arquivo main.js embutido. Com mais de 2,2 milhões de instalações em todo o mundo, a extensão é um item diário em muitos ambientes profissionais de desenvolvimento.
Dentro de segundos de um desenvolvedor abrir qualquer workspace, a extensão comprometida buscava silenciosamente e executava um payload ofuscado de 498 KB puxado de um commit órfão escondido profundamente dentro do repositório oficial nrwl/nx do GitHub.
Como a extensão foi weaponizada
O ataque começou quando um token de acesso pessoal do GitHub de um contribuidor foi roubado durante um incidente anterior de cadeia de suprimentos. Usando esse token roubado, o atacante enviou um commit órfão, referenciado como 558b09d7, para o repositório nrwl/nx às 03:18 UTC.
Este commit não tinha commits pais e era completamente inacessível de qualquer branch, tornando-o invisível para qualquer pessoa que não soubesse o SHA exato. O commit órfão substituiu todo o monorepo Nx com apenas dois arquivos: um package.json e um payload index.js fortemente ofuscado.
Roubo de credenciais e backdoor persistente
O payload executou seis classes coletoras especializadas simultaneamente, cada uma construída para colher uma categoria diferente de segredos. Em sistemas Linux, também procurava por acesso sudo sem senha e, se bem-sucedido, injetava uma regra sudoers para estabelecer acesso persistente de nível root no host afetado.
Em macOS, o payload instalou um backdoor baseado em Python em ~/.local/share/kitty/cat.py, registrado como LaunchAgent para executar automaticamente a cada hora. Este backdoor usou a API de Pesquisa do GitHub como um canal de comando e controle discreto, pesquisando instruções assinadas pelo atacante a cada sessenta minutos.
Indicadores de comprometimento (IoCs)
Os principais indicadores de comprometimento incluem:
- SHA-256 Hash do arquivo VSIX malicioso: 1a4afce34918bdc74ae3f31edaffffaa0ee074d83618f53edfd88137927340b8
- SHA-256 Hash do main.js malicioso: b0cefb66b953e5184b6adb3035e9e267335ac5eabfe1848e07834777b9397b74
- Git SHA do commit órfão malicioso: 558b09d7ad0d1660e2a0fb8a06da81a6f42e06d2
- URL do endpoint C2: api.github.com/search/commits?q=firedalazer
- IP Address do endpoint AWS IMDS: 169.254.169.254
- Arquivo de backdoor: ~/.local/share/kitty/cat.py
Medidas de mitigação recomendadas
StepSecurity recomenda atualizar imediatamente para a versão 18.100.0 ou posterior, remover todos os artefatos de persistência, matar processos em segundo plano órfãos e rotacionar todas as credenciais alcançáveis da máquina afetada, incluindo tokens GitHub, tokens npm, chaves SSH, credenciais AWS e quaisquer segredos que estavam em memória de processo no momento do comprometimento.
Implicações para governança de segurança
Este incidente reforça a necessidade de políticas de segurança mais rigorosas para extensões de IDE e ferramentas de desenvolvedor de terceiros. Organizações devem revisar seus processos de aprovação de extensões e implementar verificações de integridade em tempo real.
O que os CISOs devem fazer imediatamente
Executivos de segurança devem priorizar a revisão de todas as máquinas que tinham Nx Console instalado com atualização automática habilitada entre 12:36 e 12:47 UTC em 18 de maio. A implementação de verificações de integridade de código e a rotação proativa de credenciais são medidas críticas para mitigar o risco deste ataque.
Perguntas frequentes
Como saber se minha organização foi afetada? Verifique se alguma máquina tinha Nx Console instalado com atualização automática habilitada entre 12:36 e 12:47 UTC em 18 de maio. Se sim, trate a máquina como totalmente comprometida.
Qual o impacto potencial? Credenciais de acesso a repositórios, tokens de API, chaves de nuvem e outros segredos podem ter sido comprometidos.