
A empresa de segurança Socket Security divulgou em 25 de maio uma campanha de ataque à cadeia de suprimentos de criptomoedas chamada TrapDoor, com mais de 34 pacotes maliciosos e 384 versões relacionadas encontradas no npm, PyPI e Crates.io. A Socket informou os repositórios afetados sobre a atividade, e alguns pacotes maliciosos já foram removidos; no momento da apuração, ainda há alguns em circulação.
Mecanismos de execução maliciosa nos três maiores repositórios
(Fonte: Socket Security)
npm (22 pacotes) implanta uma carga útil de coleta de credenciais compartilhada, trap-core.js, por meio de hooks de pós-instalação (postinstall hooks). O payload é validado com credenciais roubadas usando as APIs da AWS e do GitHub, e a persistência é estabelecida via ganchos do Git, ganchos de shell, systemd, cron e SSH, de modo que máquinas de desenvolvimento comprometidas podem servir como ponte para movimentação lateral a outras infraestruturas.
PyPI (7 pacotes) executa automaticamente na importação: baixa um JavaScript do domínio GitHub Pages controlado pelo atacante e o executa com node -e. O atacante não precisa publicar novas versões para atualizar o comportamento. Crates.io (6 pacotes, todos voltados a desenvolvedores de Sui e Move) usa um script de build.rs malicioso: durante a compilação no Rust, ele busca no repositório local de chaves e envia chaves criptografadas por XOR, codificadas de forma fixa, para um GitHub Gist.
Tipos de dados roubados pelo TrapDoor (confirmados pela Socket)
Com base na análise da Socket, o TrapDoor rouba os seguintes dados:
· Chaves SSH (que podem ser usadas para movimentação lateral)
· Dados das carteiras Sui, Solana e Aptos
· Credenciais da AWS e tokens do GitHub
· Perfis de navegador e dados do banco de logins
· Dados de extensões de carteiras cripto
· Variáveis de ambiente e chaves de API
· Perfis de configuração locais de desenvolvimento
Injeção de alvos de IA: .cursorrules, CLAUDE.md e PRs maliciosos
O TrapDoor usa os arquivos .cursorrules e CLAUDE.md para inserir instruções ocultas por meio de caracteres Unicode de largura zero, na tentativa de induzir ferramentas de codificação de IA (como Cursor, Claude) a executar “varreduras de segurança”, fazendo com que chaves de desenvolvedores sejam roubadas. O atacante usa a conta do GitHub ddjidd564 e, ao mesmo tempo, envia solicitações de pull para projetos open source populares de IA como browser-use, langchain, langflow, llama_index, MetaGPT e OpenHands, na tentativa de inserir .cursorrules e CLAUDE.md que apontem para URLs de configuração controladas pelo atacante. A atividade foi marcada como P-2024-001.
Perguntas frequentes
Quais medidas emergenciais os desenvolvedores afetados pelo TrapDoor devem adotar?
Identifique e remova imediatamente quaisquer pacotes maliciosos relacionados que tenham sido instalados (a lista completa inclui 22 pacotes no npm, 7 no PyPI e 6 no Crates.io) e revogue imediatamente quaisquer credenciais da AWS, tokens do GitHub e chaves SSH que tenham sido expostos. A Socket informou os três repositórios de registro e continua atualizando sua página de acompanhamento das atividades de ataque do TrapDoor.
Qual é a infraestrutura usada na campanha de ataque do TrapDoor?
O atacante usa a conta do GitHub ddjidd564 para hospedar a carga útil e as configurações; o domínio GitHub Pages é ddjidd564[.]github[.]io/defi-security-best-practices/. A conta também mantém documentação técnica criada pelo próprio atacante (incluindo AUDIT-MATRIX.md, BYPASS.md, PAYLOAD.md e SWARM.md) e vários repositórios “isca” voltados a DeFi e segurança.
Como os desenvolvedores podem verificar se seu ambiente foi infectado?
A Socket recomenda verificar se há, no ambiente local de desenvolvimento, configurações anômalas que contenham caracteres Unicode de largura zero nos arquivos .cursorrules ou CLAUDE.md, além de processos anômalos em hooks de postinstall, serviços systemd ou tarefas cron. A lista completa de pacotes maliciosos da Socket foi publicada; os desenvolvedores podem conferir, um a um, quais pacotes já estão instalados.