Ataque de Supply Chain no npm (Set/2025)
O maior ataque já registrado ao npm comprometeu 18 pacotes populares (chalk, debug, ansi-styles, duckdb, entre outros), somando 2,6 bilhões de downloads semanais.

🚨 Ataque de Supply Chain no npm (Set/2025)
O maior ataque já registrado ao npm comprometeu 18 pacotes populares (chalk, debug, ansi-styles, duckdb, entre outros), somando 2,6 bilhões de downloads semanais.
Esse incidente expõe milhões de desenvolvedores e empresas a riscos imediatos de comprometimento de aplicações, principalmente via dependências transitivas (pacotes de pacotes).
⚡ O que aconteceu?
Um mantenedor legítimo caiu em golpe de phishing, permitindo que hackers publicassem versões maliciosas.
Os pacotes infectados monitoravam transações em carteiras Web3 (Ethereum, BTC, Solana).
A escala é absurda: o ataque representa 207 vezes o volume semanal do Next.js e 61 vezes o do React.
📌 Importante:
Josh Junon → mantenedor de pacotes como debug e chalk, foi a vítima do phishing.
Guillermo Rauch → CEO da Vercel e criador do Next.js, relatou que sua equipe recebeu a mesma tentativa de phishing, mas não caiu no golpe.
Como verificar agora
1. Auditoria rápida
bashnpm ls debug@4.4.2 chalk@5.6.1 ansi-styles@6.2.2 duckdb@1.3.3
Se houver saída, sua aplicação usa uma versão comprometida.
2. Script celeiro.dev (auditoria local) - SUGESTÃO
📌 Para que serve
Este script deve ser usado em um repositório local.
Ele varre package-lock.json, yarn.lock, pnpm-lock.yaml e package.json, além de buscar IoCs no código-fonte.
O resultado é um CSV com os pacotes e arquivos comprometidos encontrados.
bash#!/usr/bin/env bash set -euo pipefail # Modo estrito: encerra ao menor erro, evita variáveis não definidas ROOT="${1:-.}" # Diretório alvo (padrão: diretório atual) FOUND=0 # Flag de achados (0 = limpo, 1 = comprometido) OUT="${2:-scan-npm-supplychain-2025-09.csv}" # Nome do relatório CSV de saída # Lista de pacotes@versão maliciosos identificados no ataque de Set/2025 read -r -d '' MALICIOUS <<'EOF' debug@4.4.2 chalk@5.6.1 ansi-styles@6.2.2 ansi-regex@6.2.1 supports-color@10.2.1 wrap-ansi@9.0.1 slice-ansi@7.1.1 strip-ansi@7.1.1 has-ansi@6.0.1 chalk-template@1.1.1 supports-hyperlinks@4.1.1 color@5.0.1 color-convert@3.1.1 color-string@2.1.1 color-name@2.0.1 backslash@0.2.1 is-arrayish@0.3.3 simple-swizzle@0.2.3 error-ex@1.3.3 duckdb@1.3.3 @duckdb/node-api@1.3.3 @duckdb/node-bindings@1.3.3 @duckdb/duckdb-wasm@1.29.2 EOF # Indicadores de Compromisso (IoCs) encontrados dentro do código malicioso IOC_REGEX='checkethereumw|newdlocal|websocket-api2\.publicvm\.com' echo "path,type,match" > "$OUT" # Cabeçalho do CSV de saída # Funções que verificam lockfiles, package.json e IoCs... # (mesmo conteúdo já explicado acima)
📊 Saída: scan-npm-supplychain-2025-09.csv listando lockfiles, package.json ou IoCs encontrados. 🔴 Código de saída 2 = indicadores encontrados.
IMPORTANTE: Se você tem líder e/ou equipe, converse antes de seguir com o procedimento.
3. Script celeiro.dev (auditoria organizacional via GitHub) - SUGESTÃO
📌 Para que serve
Este script deve ser usado em uma organização do GitHub.
Ele lista todos os repositórios com o gh (GitHub CLI), clona cada repo em paralelo e executa o scanner local.
Ideal para times com dezenas ou centenas de projetos.
bash#!/usr/bin/env bash set -euo pipefail # Uso: ./scan-org-npm-supplychain-2025-09.sh <ORG> ORG="${1:?Uso: $0 <ORG>}" BASE_WORK="${BASE_WORK:-/tmp/scan-org-npm-$$}" mkdir -p "$BASE_WORK" echo "[i] Workspace: $BASE_WORK" SCANNER="security/npm-2025-09/tools/scan-npm-supplychain-2025-09.sh" # Lista até 200 repositórios da organização usando GitHub CLI mapfile -t REPOS < <(gh repo list "$ORG" --limit 200 --json sshUrl -q '.[].sshUrl') echo "[i] Total de repos: ${#REPOS[@]}" process_repo() { local repo_ssh="$1" local reponame="${repo_ssh##*/}"; reponame="${reponame%.git}" local workdir="$BASE_WORK/$reponame" echo "[i] Clonando $reponame" git clone --depth 1 "$repo_ssh" "$workdir" >/dev/null 2>&1 || { echo "[!] Falha clone $reponame"; return 0; } local csv="$workdir/scan-npm-supplychain-2025-09.csv" (cd "$workdir" && "$SCANNER" . "$csv") || status=$? || true status=${status:-0} if [[ "$status" -eq 2 ]]; then echo "[!] Indicadores encontrados em $reponame" # Aqui pode-se abrir issue automática usando GitHub CLI else echo "[i] Sem indicadores em $reponame" fi rm -rf "$workdir" } export -f process_repo export BASE_WORK SCANNER # Executa em paralelo se o comando 'parallel' existir if command -v parallel >/dev/null 2>&1; then printf '%s\n' "${REPOS[@]}" | parallel -j 4 process_repo {} else for r in "${REPOS[@]}"; do process_repo "$r"; done fi echo "[✓] Finalizado."
IMPORTANTE: Se você tem líder e/ou equipe, converse antes de seguir com o procedimento.
O que fazer se encontrou algo
Limpe caches:
npm cache clean --force
Recrie dependências:
rm -rf node_modules package-lock.json && npm ci
Rotacione segredos de pipelines.
Reconstrua e publique artefatos confiáveis.
IMPORTANTE: Se você tem líder e/ou equipe, converse antes de seguir com o procedimento.
🔮 Até o momento, como se proteger - SUGESTÃO
Sempre use npm ci em CI/CD.
Bloqueie versões maliciosas em proxy interno.
Implemente SCA/SBOM (Syft, CycloneDX, Semgrep).
Adote assinatura/verificação de pacotes (Sigstore/cosign).
Treine mantenedores contra phishing.
⚠️ Observação crítica
Se você faz parte de uma equipe, converse imediatamente com colegas de segurança.
Se você é a própria equipe mas depende de terceirizados, discuta o tema com eles urgente e registre oficialmente (e-mails, atas, contratos).
Fontes:
Fonte | Conteúdo |
---|---|
TabNews | Notícia detalhada em português sobre o ataque e volumes de downloads |
Desbugados | Reflexão sobre confiança digital no ecossistema JavaScript |
Dark Reading | Reportagem internacional sobre o ataque e impacto em 18 pacotes |
CSO Online | Cobertura técnica, phishing de 2FA e bilhões de downloads afetados |
Bleeping Computer | Detalhes sobre phishing e impacto global no ecossistema npm |
Vercel (Blog) | Resposta oficial da Vercel ao ataque e medidas adotadas |
Aikido Security | Análise técnica e explicação do payload voltado a Web3 |
Semgrep | Regras de detecção e recomendações de mitigação |
celeiro.dev – Um Celeiro de Ideias
Gostou da notícia? 🎉
Sua opinião é importante para nós! Interaja com o conteúdo:
📢 Compartilhe com seus colegas:

Não perca as próximas notícias!
Receba conteúdo exclusivo sobre segurança da informação, tutoriais práticos e as últimas tendências em tecnologia.
💡 Sem spam. Cancele quando quiser. Seus dados estão seguros conosco.
Sistema de Comentários
Em breve você poderá comentar e discutir sobre as notícias!
Continue Explorando
Descubra mais conteúdos sobre Segurança da Informação e outros temas relacionados.
Ver todas as notícias