Ataque à cadeia de suprimentos do npm por comprometimento de mantenedor de código aberto
8 de setembro de 2025
0 minutos de leituraNa 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:
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?
Este incidente ainda está em andamento. Acompanhe as atualizações desta publicação e as informações do desenvolvedor Qix no GitHub.
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
Se nenhum teste tiver sido executado desde a publicação dos avisos, faça um novo teste
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.

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:
Comprometimento dos mantenedores do ESLint/Prettier (julho de 2025): phishing + typosquatting (npnjs.com) capturaram credenciais do npm e inseriram malware em pacotes populares, reforçando a importância de proteger as contas dos mantenedores com autenticação de dois fatores.
Como transformar agentes de programação com IA em armas para distribuir malware no incidente de segurança do pacote malicioso Nx (agosto de 2025)
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



