
Uma versão maliciosa da extensão nrwl.angular-console ficou disponível por 18 minutos no Visual Studio Marketplace e executou código para coletar credenciais de ambientes de desenvolvimento, alcançando repositórios internos do GitHub por meio de um dispositivo de funcionário comprometido.
| Componente | Extensão Nx Console para VS Code, publicada como nrwl.angular-console, e repositórios internos do GitHub acessados a partir de um dispositivo de funcionário comprometido. |
| Vetor | Atualização adulterada no Visual Studio Marketplace, disponível entre 12:30 e 12:48 UTC em 18 de maio de 2026, com execução automática no início da extensão. |
| Impacto | Exfiltração estimada de cerca de 3.800 repositórios internos do GitHub; alguns repositórios internos podem conter trechos de interações de suporte com clientes. |
| Prioridade | Identificar instalações ou atualizações da extensão durante a janela de exposição, revogar credenciais de desenvolvimento e revisar uso de tokens de GitHub, npm, AWS, 1Password e configurações do Claude Code. |
| Artefatos | O código malicioso executava um comando de shell que baixava e executava um pacote oculto a partir de um commit plantado no repositório oficial nrwl/nx. |
| Atribuição | A atividade foi associada ao grupo criminoso TeamPCP, que vem explorando cadeias de distribuição de ferramentas usadas por desenvolvedores. |
O incidente envolveu uma cadeia de comprometimento centrada em ferramenta de desenvolvimento, não em exploração direta de um serviço público do GitHub. A versão adulterada da extensão Nx Console para VS Code, identificada pelo pacote nrwl.angular-console, foi distribuída pelo Visual Studio Marketplace por uma janela curta, de 18 minutos, em 18 de maio de 2026. Mesmo com a exposição limitada entre 12:30 e 12:48 UTC, a extensão alcançou máquinas de desenvolvedores que confiavam no fluxo normal de atualização do marketplace. Em um desses casos, um dispositivo de funcionário do GitHub foi comprometido, permitindo que o ator acessasse repositórios internos e exfiltrasse aproximadamente 3.800 deles.
A extensão maliciosa manteve aparência e comportamento compatíveis com a Nx Console legítima, reduzindo a chance de detecção por inspeção visual do editor ou por alteração perceptível no fluxo de trabalho do usuário. A carga útil era acionada na inicialização da extensão e executava um comando de shell único. Esse comando baixava e executava um pacote oculto referenciado por um commit plantado no repositório oficial nrwl/nx. O disfarce operacional foi uma tarefa de configuração MCP aparentemente rotineira, o que torna o evento relevante para ambientes que permitem extensões com atualização automática e execução de tarefas auxiliares no contexto do usuário.
O GitHub informou que não há evidência de impacto a informações de clientes armazenadas fora dos repositórios internos da própria empresa, como empresas, organizações e repositórios dos clientes. O risco confirmado fica concentrado nos repositórios internos acessados; alguns deles podem conter informações derivadas de interações de suporte, incluindo trechos de comunicações com clientes. A contenção incluiu rotação de segredos críticos e monitoramento de atividade subsequente, medida necessária porque o vetor tinha como objetivo coletar credenciais reutilizáveis em múltiplos serviços de desenvolvimento.
A cadeia começa com a publicação de uma versão contaminada da extensão nrwl.angular-console no Visual Studio Marketplace. Em editores como VS Code e ambientes compatíveis, extensões populares costumam receber atualizações sem intervenção manual do usuário. Esse modelo reduz a permanência de versões vulneráveis, mas cria um canal de distribuição direto quando a conta, o processo de publicação ou a infraestrutura de um mantenedor é comprometida. O atacante não precisou convencer cada vítima a instalar um binário novo por phishing; bastou inserir uma atualização em um componente já confiável e aguardar que clientes instalados buscassem a versão publicada.
Após carregada pelo editor, a extensão executava um comando de shell no contexto da sessão do usuário. A execução partia do processo associado ao host de extensões, o que deve aparecer em telemetria de endpoint como um processo filho incomum ou como invocação de shell vinculada ao editor. O comando buscava um pacote oculto em um commit introduzido no repositório oficial nrwl/nx, aproveitando a confiança operacional no domínio, no nome do projeto e no histórico do repositório. O uso de um repositório legítimo como ponto intermediário dificulta bloqueios baseados apenas em reputação de domínio e exige análise de caminho, commit, conteúdo baixado e processo chamador.
A carga descrita tinha função de roubo de credenciais. Os alvos incluíam cofres do 1Password, configurações do Anthropic Claude Code, credenciais npm, tokens ou materiais de autenticação do GitHub e credenciais da Amazon Web Services. Esse conjunto mostra uma estratégia de pivô em cadeia: a máquina de um desenvolvedor concentra segredos que permitem publicar pacotes, acessar repositórios, consultar infraestrutura em nuvem e operar ferramentas de automação. Quando esses segredos são coletados, o atacante pode tentar comprometer novos projetos legítimos, inserir alterações em ferramentas confiáveis e ampliar a cadeia de distribuição sem depender de exploração de vulnerabilidades tradicionais.
A atividade foi atribuída ao TeamPCP, grupo criminoso associado a ataques recentes contra projetos de código aberto e ferramentas próximas à operação de segurança e desenvolvimento. A mesma dinâmica aparece no encadeamento com o ataque à cadeia do TanStack, que afetou organizações como OpenAI, Mistral AI e Grafana Labs. O ponto técnico mais importante é a retroalimentação da campanha: uma ferramenta confiável comprometida coleta credenciais de mantenedores ou usuários avançados, e essas credenciais podem viabilizar novas publicações adulteradas em outros projetos confiáveis.
A superfície primária inclui estáções de trabalho que instalaram ou atualizaram a extensão Nx Console nrwl.angular-console durante a janela de publicação maliciosa no Visual Studio Marketplace. O risco não se limita ao VS Code puro: ambientes que compartilham ecossistema de extensões, políticas de atualização automática ou execução de extensões compatíveis devem ser avaliados caso a extensão estivesse instalada. A pré-condição relevante é a presença da extensão e a execução do editor durante ou após a entrega da versão adulterada, pois o código era acionado quando a extensão inicializava.
A superfície secundária inclui contas e serviços cujas credenciais residiam na máquina afetada. Isso abrange identidades de desenvolvedor no GitHub, tokens npm usados para publicação ou automação, chaves ou perfis de AWS, dados acessíveis por cofres 1Password e arquivos de configuração do Claude Code. O impacto depende das permissões concedidas a cada segredo coletado: um token com escopo de leitura a repositórios internos permite exposição de código e metadados; um token com permissão de publicação em registro pode habilitar novo ataque de supply chain; uma credencial de nuvem com privilégios amplos pode permitir enumeração, criação de recursos ou acesso a dados.
No caso do GitHub, o acesso resultou na exfiltração de cerca de 3.800 repositórios internos. Repositórios internos não equivalem necessariamente a repositórios de clientes, mas podem conter código operacional, documentação, integrações, testes, trechos de suporte, referências a sistemas internos e informações auxiliares úteis para reconhecimento. Como alguns repositórios podem conter trechos de interações de suporte, a análise de impacto precisa separar código, segredos, dados de atendimento, identificadores de clientes e qualquer informação que possa exigir notificação pelos canais formais de resposta a incidentes.
- Máquinas com
nrwl.angular-consoleinstalada ou atualizada entre 12:30 e 12:48 UTC em 18 de maio de 2026. - Sessões de editor que permitiram inicialização automática da extensão após a atualização maliciosa.
- Credenciais locais de GitHub, npm, AWS, 1Password e configurações do Claude Code acessíveis ao usuário comprometido.
- Repositórios internos com código, documentação, dados de suporte ou segredos persistidos indevidamente.
A investigação deve começar pelo inventário de extensões instaladas em endpoints de desenvolvimento. O objetivo é reconstruir quais máquinas receberam nrwl.angular-console durante a janela de exposição e quais usuários executaram o editor após a atualização. Logs de gerenciamento de endpoint, EDR, inventário de software, diretórios de extensões do usuário e histórico do Visual Studio Marketplace devem ser correlacionados com horário UTC. A janela de 18 minutos é curta, mas a execução e o uso de credenciais podem ocorrer depois, caso o pacote malicioso tenha sido carregado e o segredo tenha sido coletado.
Na telemetria de processo, procure execuções de shell originadas do host de extensões do VS Code ou de editores compatíveis. O comportamento esperado de uma extensão de produtividade não inclui baixar e executar pacote oculto a partir de commit específico em repositório de projeto. Registros de proxy, DNS e EDR devem ser analisados para acessos ao GitHub feitos por processos de editor seguidos por execução de conteúdo baixado. Como o repositório intermediário era o nrwl/nx, a reputação do destino isoladamente não basta; a anomalia está na combinação de processo chamador, caminho do artefato, horário da requisição, criação de processo filho e acesso subsequente a arquivos de credenciais.
A camada de identidade é crítica. Tokens GitHub usados a partir de endereços, dispositivos ou user agents incomuns após 18 de maio de 2026 devem ser priorizados. O mesmo raciocínio se aplica a npm e AWS: novas publicações, consultas de pacotes, enumeração de recursos, criação de credenciais, alteração de permissões ou uso fora do padrão do usuário podem indicar aproveitamento dos segredos coletados. Para 1Password e Claude Code, o foco deve ser acesso anômalo a cofres, exportações, leituras em massa ou abertura de arquivos de configuração próximos ao momento em que a extensão foi executada.
- Instalação, atualização ou carregamento de
nrwl.angular-consolena janela de 12:30 a 12:48 UTC de 18 de maio de 2026. - Processos de shell iniciados pelo host de extensões do VS Code ou por editor compatível.
- Requisições para conteúdo no repositório
nrwl/nxseguidas por execução local de pacote ou script. - Uso de tokens GitHub, npm ou AWS a partir de origem, horário, escopo ou sequência incompatíveis com o padrão do usuário.
- Acesso incomum a cofres 1Password ou arquivos de configuração do Claude Code em estáções de desenvolvimento.
A resposta deve tratar a estáção de desenvolvimento como ponto inicial de comprometimento e as credenciais locais como potencialmente expostas. Máquinas que receberam a versão maliciosa precisam ser isoladas para preservação de evidências, coleta de artefatos e análise de persistência. A simples remoção da extensão não encerra o risco se tokens já foram coletados. A ordem defensiva recomendada é identificar endpoints afetados, coletar telemetria de processo e rede, revogar credenciais, validar acessos em serviços externos e só então restaurar o ambiente de desenvolvimento com extensões e caches verificados.
A rotação de segredos deve cobrir GitHub, npm, AWS, 1Password e quaisquer credenciais referenciadas em arquivos de configuração usados por ferramentas de IA ou automação de código. Tokens com privilégios amplos precisam ser substituídos por credenciais de escopo mínimo e validade curta. Em repositórios, revise commits recentes, alterações em workflows de CI/CD, arquivos de configuração de publicação, scripts de instalação, dependências, webhooks e chaves de deploy. Em registros de pacotes, verifique se houve publicação inesperada, alteração de mantenedores, mudança de metadados ou nova versão empurrada por uma identidade exposta.
Ambientes de engenharia devem revisar a política de extensões. Para extensões críticas, considere allowlist por editor, bloqueio temporário de atualização automática para componentes de alto risco, validação de versão aprovada e telemetria obrigatória de execução de comandos por extensão. A medida não deve ser apenas administrativa: é necessário registrar processo pai e filho, linha de comando, hash de artefatos executados, origem de downloads e acesso a arquivos sensíveis. Em paralelo, mantenedores de projetos precisam reforçar a proteção de publicação com autenticação forte, revisão de alterações de release, contas separadas para publicação e monitoramento de commits usados como ponto de distribuição de artefatos.
Para o caso dos repositórios internos do GitHub, a mitigação confirmada incluiu contenção, rotação de segredos críticos e monitoramento de atividade subsequente. Organizações que dependem de ferramentas de desenvolvimento amplamente distribuídas devem aplicar a mesma lógica ao próprio ambiente: mapear quais ferramentas têm permissão para executar comandos locais, quais segredos ficam disponíveis em estáções de trabalho e quais eventos indicam que um token de desenvolvedor virou vetor de movimentação para repositórios, registros e nuvem.
- Inventariar endpoints com
nrwl.angular-consolee confirmar se houve atualização durante a janela maliciosa. - Revogar e recriar tokens GitHub, npm e AWS usados nos dispositivos afetados.
- Revisar acessos a cofres 1Password e arquivos de configuração do Claude Code em máquinas suspeitas.
- Auditar repositórios, workflows de CI/CD, webhooks, chaves de deploy e publicações de pacotes realizadas após 18 de maio de 2026.
- Aplicar allowlist de extensões, controle de atualização e telemetria de execução de comandos por extensões em estáções de desenvolvimento.
0 Comentários