# CVE-2025-54313 - eslint-config-prettier Supply-Chain Compromise (npm) > [!high] CVSS 8.5 - CISA KEV - Ataque Supply-Chain via npm > Versões comprometidas do pacote eslint-config-prettier contêm código malicioso que executa uma DLL via rundll32 durante a instalação, roubando tokens npm e comprometendo pipelines de CI/CD em Windows. ## Visão Geral O **CVE-2025-54313** representa um ataque de **comprometimento de supply-chain** no ecossistema npm, específicamente no pacote **`eslint-config-prettier`** - uma configuração de regras ESLint amplamente utilizada em projetos JavaScript e TypeScript ao redor do mundo. Versões específicas do pacote foram comprometidas com **código malicioso** inserido no script de instalação (`install.js`), executado automaticamente durante `npm install` em sistemas Windows. Este tipo de ataque é particularmente insidioso porque aproveita a confiança que desenvolvedores depositam em ferramentas de desenvolvimento estabelecidas. O vetor de ataque explora um padrão universal no desenvolvimento moderno: todo projeto JavaScript/TypeScript que usa ESLint com Prettier - uma combinação extremamente comum - é um alvo potencial. O código malicioso utiliza `rundll32.exe` para carregar uma DLL (`node-gyp.dll`) incluída no pacote, roubando tokens npm do ambiente de desenvolvimento ou CI/CD. Esses tokens permitem ao atacante públicar pacotes maliciosos em nome das vítimas, criando um efeito cascata de comprometimento na cadeia de suprimentos de software. A CISA adicionou esta CVE ao catálogo KEV em janeiro de 2026, juntamente com [[cve-2025-34026|CVE-2025-34026]] e [[cve-2025-68645|CVE-2025-68645]], reconhecendo seu uso em comprometimentos confirmados. O incidente é comparável em natureza ao ataque ao `ua-parser-js` em 2021 e ao `event-source-polyfill` em 2023, mas com impacto amplificado pela prevalência do `eslint-config-prettier` no ecossistema. ## Versões Comprometidas | Pacote | Versão Comprometida | Status | |--------|-------------------|--------| | eslint-config-prettier | 8.10.1 | Comprometida - não usar | | eslint-config-prettier | 9.1.1 | Comprometida - não usar | | eslint-config-prettier | 10.1.6 | Comprometida - não usar | | eslint-config-prettier | 10.1.7 | Comprometida - não usar | | eslint-config-prettier | 8.10.0 e anteriores | Segura | | eslint-config-prettier | 9.1.0 e anteriores | Segura | | eslint-config-prettier | 10.1.5 e anteriores | Segura | ## Descrição Técnica A exploração ocorre **automaticamente durante a instalação do pacote** em sistemas Windows. O script `install.js` incluído nas versões comprometidas: 1. Verifica o sistema operacional (executa apenas no Windows - sai silenciosamente em Linux/macOS) 2. Usa `rundll32.exe` para carregar a `node-gyp.dll` maliciosa incluída no pacote 3. A DLL executa código que rouba **tokens npm** armazenados no sistema (`~/.npmrc`) 4. Os tokens comprometidos permitem públicar pacotes em nome do desenvolvedor/organização **Cadeia de impacto em ambientes CI/CD:** ``` npm install → install.js acionado → rundll32 carrega DLL → tokens npm roubados → publicação de pacotes maliciosos → comprometimento downstream ``` **Escopo limitado por plataforma:** A exploração é específica para Windows. Sistemas Linux e macOS não são afetados pelo payload, mas pipelines CI que rodam em agentes Windows self-hosted (common em Azure DevOps, GitHub Actions self-hosted) são vulneráveis. **TTPs associadas:** - [[t1195-002-supply-chain-compromise|T1195.002 - Compromise Software Supply Chain]] - [[t1552-unsecured-credentials|T1552 - Unsecured Credentials]] - [[t1059-command-scripting-interpreter|T1059 - Command and Scripting Interpreter]] ## Contexto LATAM > [!latam] Impacto no Brasil e América Latina > O eslint-config-prettier é um dos pacotes npm mais populares no Brasil, presente em virtualmente todo projeto TypeScript e Node.js moderno. Equipes de engenharia de software em fintechs, startups de tecnologia e grandes empresas do setor financeiro e de telecomúnicações que utilizaram as versões comprometidas em ambientes Windows devem assumir que seus tokens npm foram comprometidos. O ecossistema brasileiro de desenvolvimento de software, que produz inúmeros pacotes open-source ativos no npm, é especialmente vulnerável ao efeito cascata: um token comprometido pode permitir a públicação de versões maliciosas de pacotes usados por milhares de outros projetos. Times de DevSecOps devem auditar pipelines de CI/CD com agentes Windows e rotacionar tokens npm imediatamente. ## Mitigação **Ação imediata:** - **Não usar as versões comprometidas:** 8.10.1, 9.1.1, 10.1.6, 10.1.7 - Reverter para versão anterior verificada (ex: `[email protected]`) ou atualizar para versão posterior segura - Verificar o `package-lock.json` para confirmar que versões comprometidas não foram instaladas **Se houver suspeita de comprometimento:** 1. **Revogar imediatamente** todos os tokens npm: `npm token revoke <token>` 2. Gerar novos tokens com permissões mínimas necessárias 3. Revisar todos os pacotes públicados nas 24-48h após a instalação comprometida 4. Verificar variáveis de ambiente e secrets no pipeline de CI/CD no período 5. Inspecionar o sistema Windows onde `npm install` foi executado com as versões afetadas **Detecção:** - Verificar presença de `node-gyp.dll` inesperada em `node_modules/eslint-config-prettier/` - Monitorar execuções de `rundll32.exe` disparadas por processos npm/Node.js - Auditar logs de públicação npm para públicações não autorizadas ## Notas Relacionadas **CVEs adicionados ao CISA KEV simultaneamente:** [[cve-2025-34026|CVE-2025-34026]] · [[cve-2025-68645|CVE-2025-68645]] **TTPs:** [[t1195-002-supply-chain-compromise|T1195.002]] · [[t1552-unsecured-credentials|T1552]] · [[t1059-command-scripting-interpreter|T1059]] **Contexto:** Ataque supply-chain npm similar ao `ua-parser-js` (2021) e `event-source-polyfill` (2023) **Setores em risco:** [[technology]] · [[financial]] · Qualquer organização com pipelines CI/CD Windows usando npm ## Referências - [CISA KEV Catalog - CVE-2025-54313](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) - [npm Advisory - eslint-config-prettier](https://www.npmjs.com/advisories) - [NVD - CVE-2025-54313](https://nvd.nist.gov/vuln/detail/CVE-2025-54313) - [Socket.dev Supply Chain Security Blog](https://socket.dev/blog)