Pular para o conteúdo
SegurançaPublicado em 5 min de leitura

Ataque ao npm adultera pacotes como chalk e debug para trocar endereços de carteira: o que aconteceu e como se proteger

Em 8 de setembro de 2025, 18 pacotes do npm foram contaminados com código que reescreve o destino de transferências em cripto. Os criminosos ganharam pouco, segundo os primeiros relatos, mas o ataque mostra por que o endereço deve ser conferido fora da tela do site.

Referência histórica: 16 de setembro de 2025. Publicado neste site em 2 de novembro de 2026. As datas no texto identificam o período retratado.

Monitor ligado exibindo linhas de código de programação em fundo escuro
Foto: Pankaj Patel / Unsplash
Neste artigo

Em resumo

  • Em 8 de setembro de 2025, um mantenedor do npm caiu em phishing e 18 pacotes populares, entre eles chalk e debug, receberam código malicioso; somados, passam de 2 bilhões de downloads por semana.
  • O código roda no navegador, intercepta fetch, XMLHttpRequest e carteiras como a window.ethereum e troca endereços de Ethereum, Bitcoin, Solana, TRON, Litecoin e Bitcoin Cash por endereços do atacante.
  • As versões ficaram no ar por cerca de duas horas e, segundo os primeiros relatos, renderam pouco aos criminosos. O método, porém, serve de modelo para golpes mais bem-sucedidos.
  • A defesa prática é conferir o endereço de destino no dispositivo da carteira e por um segundo canal, e fazer um teste com valor pequeno.

São Paulo, 16 de setembro de 2025 — Na segunda-feira, 8 de setembro, desenvolvedores de todo o mundo receberam um alerta: versões novas de pacotes tão básicos que quase todo projeto JavaScript os usa, como chalk e debug, tinham sido publicadas com código malicioso. O objetivo não era roubar senhas nem derrubar servidores. Era mais simples e mais perigoso para quem lida com cripto: trocar, no navegador, o endereço de carteira para onde o usuário pretendia enviar dinheiro.

Pacotes do mantenedor comprometidos, segundo a Aikido Security; com outros projetos, a Wiz listava 24 em 9/9
18
Downloads semanais somados dos pacotes afetados
2 bi+
Tempo em que as versões maliciosas ficaram disponíveis, segundo a Wiz
~2 h
Redes cujos endereços o código tentava trocar: Ethereum, Bitcoin, Solana, TRON, Litecoin e Bitcoin Cash
6

O que aconteceu

O npm é o repositório público de pacotes JavaScript. Projetos de sites e aplicativos puxam de lá bibliotecas prontas e, com elas, as bibliotecas das quais essas dependem. Isso cria uma cadeia de suprimentos: quem invade uma peça pequena e popular chega a milhares de programas sem tocar neles.

O mantenedor Josh Junon, conhecido como Qix, recebeu um e-mail de phishing que imitava o suporte do npm, enviado de um domínio parecido (npmjs.help) registrado três dias antes, em 5 de setembro. Ao seguir o link e informar credenciais e o código de autenticação em duas etapas, entregou o controle da conta. Os atacantes publicaram versões novas de 18 pacotes, entre eles chalk 5.6.1, debug 4.4.2, ansi-styles, strip-ansi e color-convert. A empresa de segurança Aikido sinalizou as versões às 13h16 UTC (10h16 em Brasília), e o mantenedor confirmou a invasão cerca de duas horas depois. No dia seguinte, a JFrog e a Wiz relataram que a mesma campanha também tinha atingido pacotes do DuckDB, de outro projeto.

  1. 05/09/2025Registro do domínio de phishing que imita o suporte do npm.
  2. 08/09, cerca de 13h UTCA conta do mantenedor é tomada e versões maliciosas dos pacotes são publicadas.
  3. 08/09, 13h16 UTCA Aikido sinaliza as versões adulteradas.
  4. 08/09, 15h15 UTCO mantenedor confirma a invasão e começa a limpeza; as versões ficaram disponíveis por cerca de duas horas, segundo a Wiz.
  5. 09/09/2025JFrog e Wiz relatam que a campanha também atingiu pacotes do DuckDB; empresas de segurança publicam listas de indicadores.

Como o código trocava os endereços

O código só agia em navegadores, quando uma página que usava os pacotes estava aberta. Ele se encaixava em funções que o site usa para conversar com a rede e com a carteira, e alterava os dados no meio do caminho.

1InterceptarEnvolvia as chamadas fetch e XMLHttpRequest e as interações com carteiras como window.ethereum, passando a ver e a alterar o tráfego.
2ReconhecerProcurava, por padrão de texto, endereços de Ethereum, Bitcoin, Solana, TRON, Litecoin e Bitcoin Cash.
3SubstituirTrocava cada endereço por um do atacante, escolhido pela semelhança com o original para passar despercebido numa conferência rápida.
4Adulterar a transaçãoEm Ethereum e Solana, reescrevia destinatário e autorizações de token antes da assinatura. A tela mostrava o valor correto, mas a ordem ia para outro lugar.

A semelhança é o ponto central. Quem confere só o começo e o fim do endereço pode ser enganado por um endereço escolhido justamente por ter início e fim parecidos. É a mesma lógica do envenenamento de endereço, mas aplicada dentro do software, e não no histórico da carteira.

Quanto os criminosos levaram

Pouco, segundo os primeiros relatos. A Wiz, citando relatos de pesquisadores nas redes sociais, descreveu o ganho como “mínimo”, e não há um valor consolidado por fonte primária. Dois fatores ajudam a explicar: as versões ficaram no ar por cerca de duas horas, e o código afetava só páginas de aplicações que atualizaram a dependência e foram publicadas nesse intervalo, muitas delas sem nenhum fluxo de pagamento em cripto.

Baixo prejuízo não é baixo risco

O alcance técnico foi enorme. Se uma empresa tivesse publicado sua página de pagamento com uma versão contaminada, a ordem teria sido desviada sem aviso na tela. O ataque foi um ensaio de escala, não um fracasso do método.

Como se proteger quando se paga em cripto

Para quem desenvolve, as regras são: fixar versões com arquivo de bloqueio (package-lock.json), instalar com npm ci, esperar alguns dias antes de adotar versões recém-publicadas e proteger contas de publicação com chaves de segurança físicas, que não se entregam num site falso como um código digitado. Para quem apenas paga, o princípio é outro: a tela do computador não é prova do endereço. Foi a mesma lição do ataque à Bybit, em que a tela mostrava o destino certo e a assinatura autorizava outro.

  1. Confira o endereço no dispositivo da carteira (carteira de hardware ou aplicativo do celular), não no site ou na extensão do navegador.
  2. Compare o endereço inteiro, caractere a caractere, com o que o fornecedor informou por um canal fora do computador, como uma ligação para um telefone já conhecido.
  3. Na rede TRON, o endereço TRC-20 começa com T e tem 34 caracteres; veja como lê-lo em o que é a rede TRON.

A conferência fora do computador vale porque quebra a dependência da mesma máquina. Um navegador adulterado pode mostrar um endereço trocado igualmente no site, no e-mail aberto no webmail e na tela de confirmação, mas não altera a mensagem enviada por telefone nem o que aparece no dispositivo da carteira. O envio de teste, a lista de carteiras aprovadas e a dupla aprovação completam a rotina e estão no guia contra o envenenamento de endereço.

O que o episódio mostra

O caso reforça um padrão visto em 2025: o elo mais fraco costuma ser uma pessoa ou uma credencial, e não a criptografia. Um e-mail convincente a uma única pessoa bastou para atingir bibliotecas presentes em incontáveis projetos. A resposta passou por mantenedores, empresas de segurança e o próprio npm, e as versões saíram do ar em cerca de duas horas, mas a conferência final do destino continua sendo responsabilidade de quem envia o dinheiro.

Perguntas frequentes

O que foi o ataque ao npm de setembro de 2025?

Em 8 de setembro de 2025, um mantenedor foi vítima de phishing e 18 pacotes populares, como chalk e debug, receberam versões maliciosas. O código atuava no navegador e trocava endereços de carteira em transações de cripto. As versões ficaram disponíveis por cerca de duas horas.

Quanto dinheiro foi roubado no ataque?

Pouco, segundo os primeiros relatos: a Wiz, citando pesquisadores, descreveu o ganho como “mínimo”, e não há valor consolidado. O alcance técnico, porém, foi enorme: os pacotes somam mais de 2 bilhões de downloads semanais.

Como saber se o endereço de pagamento foi trocado?

Confira o endereço completo no dispositivo da carteira, não só na tela do computador, e compare com o que o fornecedor passou por outro canal, como telefone. Uma transação de teste com valor pequeno também reduz o risco.

Os endereços TRON foram afetados?

O código procurava endereços de seis redes, incluindo TRON, mas a transação adulterada por completo (destinatário e autorização) aparece descrita para Ethereum e Solana. Em qualquer rede, a conferência do endereço por um segundo canal continua sendo a defesa.

  • Hacks
  • Carteiras
  • Segurança digital
  • Engenharia social
  • Golpes
  • TRON
  • USDT

Achou útil? Compartilhe com quem paga fornecedor no exterior.

Fontes

  1. npm debug and chalk packages compromised · Aikido Security, 08/09/2025
  2. Widespread npm supply chain attack: breaking down impact and scope across debug, chalk and more · Wiz, 09/09/2025
  3. Ataque a pacotes com 2 bilhões de downloads semanais abala ecossistema npm · Canaltech, 12/09/2025

Conteúdo informativo, sem recomendação de investimento. Marcas de terceiros citadas pertencem aos respectivos titulares; a menção é jornalística e não indica parceria ou vínculo com a Swapo Finance.

Para importadores

Pagamento internacional com a velocidade do Pix e regra do Banco Central.

Converta real em USDT e envie ao fornecedor na rede TRON. Tarifa única exibida antes, política de segregação patrimonial, atendimento humano. Ativo virtual sem cobertura do FGC; pedido de autorização protocolado no BCB.