Skip to main content

Mantenedores do ESLint Prettier Plugin são atacados por malware na cadeia de suprimentos do npm

Escrito por
blog feature security alert purple

22 de julho de 2025

0 minutos de leitura

A partir de 19 de julho de 2025, um incidente de segurança na cadeia de suprimentos do npm vem atacando mantenedores de pacotes populares de código aberto no registro do npm.

Resumo do malware no npm

  • Os invasores registraram o domínio npnjs.com (um caso de typosquatting que imita o registro oficial npmjs.com).

  • Os mantenedores foram vítimas de uma campanha de phishing por e-mail que sequestrou suas credenciais do registro do npm.

  • Pacotes afetados: eslint-config-prettier, eslint-plugin-prettier, synckit, @pkgr/core, napi-postinstall e got-fetch

  • Os mantenedores redefiniram as credenciais dos tokens do npm, marcaram os pacotes com malware como obsoletos, e o registro do npm já removeu as versões maliciosas.

Exemplo de alerta do Snyk Vulnerability Database para a versão maliciosa de got-fetch:

versão maliciosa do pacote npm got-fetch, parte do comprometimento da segurança da cadeia de suprimentos do npm relacionado ao eslint-config-prettier

Até o momento, o pacote eslint-config-prettier tem 30.000.000 de downloads por semana e sua adoção cresce de forma constante, o que demonstra o impacto desse malware.

Downloads do pacote npm no site npm.chart.dev para o pacote eslint-config-prettier

Sobre o ataque aos plugins do Prettier no npm

Para publicar pacotes no registro oficial npmjs.com, é necessária uma conta com um endereço de e-mail válido. Quando pacotes são publicados no npm, essas informações ficam disponíveis publicamente para qualquer pessoa consultar.

Por exemplo, veja as informações sobre meu próprio pacote npq e como é fácil encontrar os e-mails dos mantenedores:

O registro do npm mostra o e-mail do mantenedor como parte das informações do pacote

Isso não é novidade. Agora, os invasores podem usar essas informações para buscar possíveis vulnerabilidades, como:

  • Domínios de e-mail expirados, que podem ser comprados para iniciar um processo de redefinição de senha e obter acesso à publicação de novas versões.

  • Alvos de spear phishing por e-mail para roubar as credenciais dos tokens do npm.

Foi exatamente essa última tática que os invasores usaram neste ataque recente: eles enganaram os mantenedores e os induziram a seguir um fluxo de e-mail que coletou suas credenciais do registro do npm. Com essas credenciais em mãos, os invasores puderam publicar novas versões desses pacotes em nome dos mantenedores.

Foi exatamente o que aconteceu com o eslint-config-prettier, um dos pacotes usados como referência, que teve várias versões infectadas com malware voltado para Windows.

O mantenedor confirmou o ocorrido e apresentou provas na página do GitHub do plugin ESLint Config Prettier, incluindo o e-mail recebido:

Campanha de phishing ataca mantenedor do eslint-config-prettier

Infecção em cadeia

O que acontece quando o malware atinge um mantenedor? É fácil que ele se espalhe para outros mantenedores quando uma versão maliciosa de um pacote popular é publicada.

Foi exatamente o que aconteceu: as consequências do malware no eslint-config-prettier, apesar de ter sido publicado por pouco tempo, já afetaram outros mantenedores — os do pacote npm is. Assim, as versões 3.3.1 e 5.0.0 do pacote npm is foram sinalizadas como contendo malware. O problema já foi corrigido (em 19 de julho, às 21h21 UTC+3), e uma nova versão corrigida, a 3.3.2, foi publicada. Segundo o mantenedor Jordan Harband, a recuperação desse pacote levou 6 horas.

Como se proteger de ataques à cadeia de suprimentos do npm

Primeiro, tome as seguintes medidas de resposta a incidentes:

  • Verifique se você não está usando nenhuma versão conhecida como maliciosa dos pacotes mencionados neste incidente e confirme que elas não foram instaladas nos seus sistemas de CI, implantações de produção nem ambientes das equipes de desenvolvimento.

  • Se encontrar uma infecção, siga as etapas para alternar os segredos, auditar os ativos de registros de pacotes internos e externos da sua empresa e cumprir as orientações da equipe de segurança interna.

Como medida preventiva, recomendo seguir estas práticas recomendadas de segurança para proteger mantenedores e desenvolvedores contra futuros incidentes de malware:

  • Ative a autenticação de dois fatores (2FA) na sua conta do registro do npm, especialmente se você for mantenedor, pois o impacto potencial de um comprometimento é muito maior.

  • Use a CLI de código aberto npq para fazer verificações heurísticas antes de instalar pacotes do npm.

  • Adicione ignore-scripts=true ao arquivo de configuração .npmrc do seu usuário para impedir a execução automática de scripts postinstall durante a instalação.

Este ataque à cadeia de suprimentos do npm reforça a necessidade crítica de medidas de segurança robustas. Para entender melhor essas ameaças e conhecer estratégias proativas para proteger seus projetos, explore a lição do Snyk Learn sobre ataques à cadeia de suprimentos.

Treinamento em segurança para desenvolvedores da Snyk

Aprenda com especialistas quando precisar, diretamente no seu código.