Skip to main content

Ataque à cadeia de suprimentos do npm por comprometimento de mantenedor de código aberto

Escrito por
Introducing open source security runtime monitoring

8 de setembro de 2025

0 minutos de leitura

Na segunda-feira, 8 de setembro, o renomado desenvolvedor de código aberto ~qix foi comprometido por meio de um e-mail de phishing. ~qix é autor e mantenedor de muitos pacotes npm populares e foi vítima desse ataque após responder a uma mensagem enviada pelo endereço support [at] npmjs [dot] help.

Com isso, o invasor assumiu o controle da conta npm dele e conseguiu publicar versões maliciosas dos pacotes aos quais Qix tinha acesso privilegiado.

Atualização de 9 de setembro: novos pacotes npm identificados como afetados foram adicionados.

Atualização de 10 de setembro: novo pacote npm identificado como afetado foi adicionado.

O que aconteceu?

O desenvolvedor de código aberto foi vítima de um e-mail de phishing que permitiu a um invasor acessar sua conta npm. Isso possibilitou a injeção de código malicioso em vários pacotes npm muito populares, dando origem a um ataque à cadeia de suprimentos.

Até o momento, esse é o único mantenedor de código aberto conhecido que foi alvo do ataque. No entanto, outros desenvolvedores de alto perfil também podem ter sido afetados, mas ainda não foram identificados.

Como o ataque foi executado?

O invasor usou engenharia social para enviar um e-mail de phishing a um desenvolvedor prolífico de código aberto. A mensagem convenceu o desenvolvedor a se autenticar e a contornar os controles de segurança, permitindo que o invasor acessasse a conta. Com isso, o invasor pôde injetar malware em qualquer pacote popular de código aberto para o qual o desenvolvedor tivesse permissões privilegiadas e, assim, publicar novas versões desses pacotes contendo o malware.

Quando executado em um navegador, o código malicioso monitora o tráfego de rede e se concentra em transações de criptomoedas. O código malicioso injetado nos pacotes ativa um hook sempre que uma carteira Web3 está presente. Depois de ativado, ele intercepta e modifica qualquer transação com valor em ETH, redirecionando-a para outro endereço, presumivelmente controlado pelo invasor. O código malicioso também monitora transações de swap e transferência para adulterá-las.

Quais dados foram visados?

O invasor visava carteiras de criptomoedas acessíveis pelo navegador dos usuários, para desviar fundos redirecionando transações ou aprovações assinadas pelos usuários para endereços sob seu controle. Até o momento, acredita-se que nenhum outro dado tenha sido visado pelo ataque.

Pacotes e versões afetados

Cronologia do ataque

~13h UTC: publicada a primeira leva de pacotes comprometidos identificados

14h16 UTC: desenvolvedor é notificado sobre possível comprometimento da conta na rede social Blue Sky

15h16 UTC: desenvolvedor confirma o comprometimento da conta em uma publicação no Blue Sky e alerta o npm sobre o incidente

17h17 UTC: npm confirma a violação e começa a remover os pacotes comprometidos

19h59 UTC: npm informa ao desenvolvedor que todas as versões dos pacotes afetados foram removidas

Indicadores de comprometimento (IoCs)

  • O usuário do GitHub SindreSorhus compartilhou um comando rápido para verificar se esse malware está na árvore de dependências:

brew install rg

rg -uu --max-columns=80 --glob '*.js' _0x112fa8 
  • Se você é mantenedor de pacotes e recebeu um e-mail de support [at] npmjs [dot] help e seguiu as instruções, provavelmente também foi afetado.

O que você deve fazer?

  1. Este incidente ainda está em andamento. Acompanhe as atualizações desta publicação e as informações do desenvolvedor Qix no GitHub.

  2. Verifique se há malware na sua árvore de dependências usando o script compartilhado por Sindre Sorhus

Usuários do Snyk

Use o Snyk SCA e o Snyk SBOM para localizar e monitorar projetos em toda a organização

  1. Se nenhum teste tiver sido executado desde a publicação dos avisos, faça um novo teste

  2. Monitore novamente os projetos da CLI para garantir que a árvore de dependências atual seja detectada

Relatórios do Snyk

Há um relatório sobre esse conjunto de vulnerabilidades na lista de relatórios “Featured Zero-Day” do Snyk. Se você tem um plano Enterprise, pode acessar esse relatório clicando em “Reports” no menu de navegação à esquerda (há relatórios nos níveis de grupo e de organização). Por padrão, é exibido o relatório “Issues Detail”, mas você pode clicar no menu suspenso “Change Report”, ao lado do título do relatório, e selecionar “Featured Zero-Day”. Na tela seguinte, selecione o relatório “npm Phishing Supply Chain Attack” no menu suspenso Zero-Day.

Painel de relatórios de vulnerabilidades de dia zero filtrado para um ataque à cadeia de suprimentos do npm por phishing, com zero problemas em aberto e três resolvidos

Sobre ataques à cadeia de suprimentos

Este incidente se soma a outros casos recentes de segurança semelhantes. Já vimos ataques a CI e a contas de mantenedores que permitiram sequestrar lançamentos:

Agende uma demonstração ao vivo do Snyk para segurança de código aberto

Converse com nossos especialistas em segurança e veja como o Snyk pode ajudar você a usar código aberto com segurança

Leia mais

Live Stream

Agentes de Remediação, Desmistificados: Por Que Corrigir é Melhor do que Encontrar

Veja como o Remediation Agent da Snyk usa inteligência de segurança, análise de explorabilidade e validação para transformar vulnerabilidades em pull requests prontos para merge.

feature ai ide dark
Blog

Uma primeira visão do Evo Agentic AppSec: remediação agentiva e defesa contra código malicioso

Conheça os primeiros recursos de Agentic AppSec da Snyk: um agente de remediação autônomo que corrige vulnerabilidades e uma defesa contra código malicioso que bloqueia pacotes arriscados antes que sejam lançados.

feature insights context
Blog

Por dentro do comprometimento do keyv npm: malware no preinstall, procedência confiável e hooks de IDE

O keyv 6.0.0 e outras dez versões do npm distribuíram malware executado durante a instalação. Confira as versões afetadas, os hashes, as etapas de detecção e a ordem segura de correção.