Live
Black Hat USAAI BusinessBlack Hat AsiaAI BusinessAnnouncing Doublehaven with Reflections on HumourLessWrong AIHow a Monorepo Keeps Multiple Projects in Sync - From Shared Code to Atomic DeploymentsDEV CommunityStep‑by‑Step Guide: Generate PowerPoint Slides Using Copilot Studio AgentDEV CommunitySecuring the Agentic Frontier: Why Your AI Agents Need a "Citadel" 🏰DEV CommunityClaude Code's Leaked Source: A Real-World Masterclass in Harness EngineeringDEV CommunityI Built an AI PPT Maker and Resume Builder WebsiteDEV CommunityHDF5 vs. TsFile: Efficient Time-Series Data StorageDEV CommunityFinnish neurowellness startup Audicin raises $1.9MThe Next Web NeuralThere Is No Such Thing As a ServiceDEV CommunityHow MERX Aggregates All Energy Providers Into One APIDEV CommunityNew Map Split Code in Nebula: Say Goodbye to Endless and Opaque C++ BuildsDEV Community🙀 Anthropic accidentally leaked Claude Code's entire source code - The NeuronGoogle News: ClaudeBlack Hat USAAI BusinessBlack Hat AsiaAI BusinessAnnouncing Doublehaven with Reflections on HumourLessWrong AIHow a Monorepo Keeps Multiple Projects in Sync - From Shared Code to Atomic DeploymentsDEV CommunityStep‑by‑Step Guide: Generate PowerPoint Slides Using Copilot Studio AgentDEV CommunitySecuring the Agentic Frontier: Why Your AI Agents Need a "Citadel" 🏰DEV CommunityClaude Code's Leaked Source: A Real-World Masterclass in Harness EngineeringDEV CommunityI Built an AI PPT Maker and Resume Builder WebsiteDEV CommunityHDF5 vs. TsFile: Efficient Time-Series Data StorageDEV CommunityFinnish neurowellness startup Audicin raises $1.9MThe Next Web NeuralThere Is No Such Thing As a ServiceDEV CommunityHow MERX Aggregates All Energy Providers Into One APIDEV CommunityNew Map Split Code in Nebula: Say Goodbye to Endless and Opaque C++ BuildsDEV Community🙀 Anthropic accidentally leaked Claude Code's entire source code - The NeuronGoogle News: Claude

Como o Ataque à Cadeia de Suprimentos do NPM Axios Acontece (E Como Proteger Seus Projetos de API)

DEV Communityby LucasApril 1, 202611 min read0 views
Source Quiz

<h2> TL;DR </h2> <p>Em 31 de março de 2026, invasores comprometeram a conta npm do mantenedor principal do Axios, o cliente HTTP JavaScript mais popular com 83 milhões de downloads semanais. Eles publicaram versões maliciosas (1.14.1 e 0.30.4) contendo um RAT (Cavalo de Troia de Acesso Remoto) multiplataforma que rouba credenciais, chaves SSH e tokens de nuvem de máquinas de desenvolvedores. Faça downgrade para o Axios 1.14.0 imediatamente, rotacione todos os segredos e escaneie seu sistema em busca de indicadores de comprometimento.</p> <p><a href="https://apidog.com/?utm_source=dev.to&amp;utm_medium=wanda&amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary">Experimente o Apidog hoje</a> </p> <h2> Introdução </h2> <p>Axios processa mais requisições HTTP do que qua

TL;DR

Em 31 de março de 2026, invasores comprometeram a conta npm do mantenedor principal do Axios, o cliente HTTP JavaScript mais popular com 83 milhões de downloads semanais. Eles publicaram versões maliciosas (1.14.1 e 0.30.4) contendo um RAT (Cavalo de Troia de Acesso Remoto) multiplataforma que rouba credenciais, chaves SSH e tokens de nuvem de máquinas de desenvolvedores. Faça downgrade para o Axios 1.14.0 imediatamente, rotacione todos os segredos e escaneie seu sistema em busca de indicadores de comprometimento.

Experimente o Apidog hoje

Introdução

Axios processa mais requisições HTTP do que qualquer outra biblioteca JavaScript. Se você construiu um cliente de API, testou endpoints ou conectou um frontend a um backend nos últimos cinco anos, provavelmente o utilizou.

Em 31 de março de 2026, às 00:21 UTC, um ator de ameaças publicou a versão 1.14.1 do Axios através de uma conta de mantenedor sequestrada. O pacote parecia idêntico ao lançamento legítimo, com apenas o package.json alterado entre 86 arquivos — suficiente para injetar uma dependência fantasma chamada plain-crypto-js que implantou um trojan de acesso remoto em toda máquina que executou npm install.

As versões maliciosas ficaram ativas por aproximadamente duas a três horas antes de serem retiradas do npm. Duas a três horas em meio a 83 milhões de downloads semanais.

💡Se você está construindo ou testando APIs, este ataque mirou diretamente sua cadeia de ferramentas. O cliente HTTP embutido do Apidog elimina a necessidade de bibliotecas HTTP de terceiros em seu fluxo de trabalho de teste de API, removendo toda essa superfície de ataque. Baixe o Apidog gratuitamente para acompanhar as etapas de auditoria de segurança abaixo.

Este artigo detalha como o ataque funcionou, como detectar se seus sistemas foram comprometidos e o que as equipes de API devem mudar em relação à gestão de dependências daqui para frente.

Como o ataque à cadeia de suprimentos do Axios se desenrolou

A linha do tempo

O atacante executou a operação em 18 horas:

  • 30 de março, 05:57 UTC: Publicado pacote "limpo" [email protected] no npm, criando histórico para parecer legítimo.

  • 30 de março, 23:59 UTC: Publicada versão maliciosa [email protected] com hook postinstall contendo o dropper.

  • 31 de março, 00:21 UTC: Lançado [email protected] pela conta comprometida jasonsaayman.

  • 31 de março, 01:00 UTC: Lançado [email protected], mirando projetos que usam o branch 0.x.

  • 31 de março, ~03:15 UTC: npm removeu ambas as versões do Axios após relatos.

  • 31 de março, 04:26 UTC: npm publicou stub de segurança para plain-crypto-js para impedir republicação.

Como a conta foi comprometida

O atacante assumiu o controle da conta npm jasonsaayman, alterando o e-mail para [email protected]. Evidências forenses incluem:

  • Lançamentos legítimos do Axios usam GitHub Actions com OIDC Trusted Publisher do npm. As versões maliciosas não possuíam ligação OIDC.

  • Ausência do campo gitHead nos releases comprometidos — não havia commits correspondentes no GitHub.

  • Uso de tokens npm de longa duração roubados para publicar manualmente, fora do CI/CD.

Automatize verificações para releases sem OIDC e sem proveniência de CI/CD.

A técnica de injeção de dependência

O atacante modificou apenas o package.json, adicionando plain-crypto-js@^4.2.1 como dependência. O pacote não foi importado no código, existindo apenas para acionar seu hook postinstall durante o npm install.

Análise binária confirmou: somente o package.json diferia entre 1.14.0 (limpo) e 1.14.1 (comprometido).

O que o payload malicioso faz

O mecanismo do dropper

O hook postinstall de plain-crypto-js executou setup.js (4.2 KB, ofuscado):

  • Camada 1: Cifra XOR com chave baseada em "OrDeR_7077"

  • Camada 2: Base64 + reversão de caracteres

Após decodificação, o dropper identificou o SO e executou payloads específicos.

Caminhos de ataque por plataforma

macOS:

# Escreve AppleScript em /tmp/6202033

Executa via osascript

Baixa payload para /Library/Caches/com.apple.act.mond`

Enter fullscreen mode

Exit fullscreen mode

Windows:

# Copia PowerShell para %PROGRAMDATA%\wt.exe (persistência)

Executa dropper VBScript via cscript`

Enter fullscreen mode

Exit fullscreen mode

Linux:

# Baixa RAT Python para /tmp/ld.py

Executa via nohup python3`

Enter fullscreen mode

Exit fullscreen mode

Todos contatam servidor de comando e controle (C2) via POST:

  • macOS: packages.npm.org/product0

  • Windows: packages.npm.org/product1

  • Linux: packages.npm.org/product2

Capacidades do RAT

O RAT suporta:

  • Execução arbitrária de comandos shell

  • Enumeração e exfiltração do sistema de arquivos

  • Listagem e injeção de processos

  • Injeção binária em memória (execução sem arquivo)

  • Beacon de 60s para infraestrutura C2

Ou seja, o atacante obtém controle remoto total de sua máquina.

Anti-forense: o payload autolimpante

Após execução, o dropper:

  • Exclui setup.js

  • Exclui o package.json malicioso

  • Renomeia um package.md pré-configurado para package.json, reportando versão 4.2.0

Assim, npm list mostra a versão "limpa", dificultando identificação manual.

Quem está por trás deste ataque

O Google Threat Intelligence Group atribuiu o ataque ao grupo UNC1069 (suspeito da Coreia do Norte). O malware para macOS tem sobreposição com WAVESHAPER, backdoor C++ rastreado pela Mandiant.

Ataques à cadeia de suprimentos são tática conhecida desses grupos, mirando ferramentas de desenvolvimento para capturar credenciais e infraestrutura crítica.

Como verificar se você foi afetado

Passo 1: Verifique sua versão do Axios

Execute em cada projeto:

npm list axios 2>/dev/null | grep -E "1\.14\.1|0\.30\.4"

Enter fullscreen mode

Exit fullscreen mode

Se retornar resultado, seu projeto instalou a versão comprometida.

Passo 2: Verifique a dependência maliciosa

ls node_modules/plain-crypto-js 2>/dev/null && echo "POTENCIALMENTE AFETADO"

Enter fullscreen mode

Exit fullscreen mode

Se existir o diretório, o payload provavelmente executou.

Passo 3: Verifique artefatos do RAT

macOS:

ls -la /Library/Caches/com.apple.act.mond 2>/dev/null

Enter fullscreen mode

Exit fullscreen mode

Linux:

ls -la /tmp/ld.py 2>/dev/null

Enter fullscreen mode

Exit fullscreen mode

Windows (PowerShell):

Test-Path "$env:PROGRAMDATA\wt.exe"

Enter fullscreen mode

Exit fullscreen mode

Passo 4: Verifique indicadores de rede

Bloqueie e escaneie conexões para:

Passo 5: Verifique logs de build de CI/CD

Revise pipelines entre 31/03 00:21 e 03:15 UTC. Qualquer execução de npm install/npm ci nesse período pode ter executado o dropper.

Etapas de remediação imediata

Se encontrar indicadores de comprometimento, trate o sistema como totalmente comprometido.

1. Faça downgrade do Axios

npm install [email protected]

Enter fullscreen mode

Exit fullscreen mode

Ou para branch 0.x:

npm install [email protected]

Enter fullscreen mode

Exit fullscreen mode

2. Adicione substituições de versão ao seu package.json

Evite resolução para versões maliciosas:

Enter fullscreen mode

Exit fullscreen mode

Para Yarn:

Enter fullscreen mode

Exit fullscreen mode

3. Remova o pacote malicioso

rm -rf node_modules/plain-crypto-js

Enter fullscreen mode

Exit fullscreen mode

4. Rotacione todas as credenciais

Considere comprometido:

  • Tokens npm

  • Credenciais AWS/GCP/Azure

  • Chaves SSH

  • Tokens GitHub

  • Chaves de API em .env

  • Credenciais de banco de dados

  • Segredos em variáveis de ambiente

Rotacione tudo.

5. Bloqueie C2 na rede

No Linux/macOS:

echo "0.0.0.0 sfrclak.com" | sudo tee -a /etc/hosts

Enter fullscreen mode

Exit fullscreen mode

6. Se artefatos forem encontrados, reconstrua a máquina

Se encontrou arquivos do passo 3, não confie mais no sistema. Faça rebuild limpo.

Defesas de longo prazo para equipes de desenvolvimento de API

Use lockfiles e fixe versões exatas

Não use faixas semânticas:

Enter fullscreen mode

Exit fullscreen mode

Sempre commit o package-lock.json/yarn.lock. No CI/CD, use:

npm ci

Enter fullscreen mode

Exit fullscreen mode

Desative scripts postinstall no CI/CD

Bloqueie hooks maliciosos:

npm ci --ignore-scripts

Enter fullscreen mode

Exit fullscreen mode

Ou, em .npmrc:

ignore-scripts=true

Enter fullscreen mode

Exit fullscreen mode

Permita scripts apenas quando necessário.

Audite dependências regularmente

Enter fullscreen mode

Exit fullscreen mode

Configure no CI/CD para bloquear builds em caso de vulnerabilidades críticas/altas.

Reduza sua superfície de dependência do cliente HTTP

Evite dependências npm para requisições HTTP em testes de API.

  • Use o cliente HTTP integrado do Apidog (link)

  • Elimine Axios/node-fetch/got de testes

  • Para mock, debug e automação CI/CD, use os recursos internos do Apidog

Verifique a proveniência do pacote

Verifique assinaturas Sigstore:

npm audit signatures

Enter fullscreen mode

Exit fullscreen mode

Não confie em versões sem proveniência OIDC.

O que isso significa para o ecossistema JavaScript

O modelo de confiança está quebrado

A proteção depende da segurança da conta do mantenedor. Uma credencial vazada compromete milhões. OIDC, aprovação dupla e escopo de permissões para scripts são discussões em andamento.

Ataques à cadeia de suprimentos continuam crescendo

Incidentes similares ocorreram no RubyGems e PyPI. Trate sua árvore de dependências como superfície de ataque.

Comparação: Abordagens de dependência do cliente HTTP

Abordagem Risco da cadeia de suprimentos Carga de manutenção Capacidade de teste

Axios + scripts personalizados Alto (dependência de terceiros) Alto (gestão de versões) Configuração manual necessária

Fetch nativo do Node.js Baixo (embutido no runtime) Baixo Recursos de teste limitados

Cliente integrado do Apidog Nenhum (sem dependência npm) Nenhum (gerenciado pela plataforma) Teste completo, mocking, docs

Scripts curl/httpie Baixo (ferramenta de nível de sistema) Médio Automação limitada

FAQ

O Axios é seguro para usar agora?

Sim. Versões 1.14.0 e 0.30.3 estão limpas. As comprometidas (1.14.1 e 0.30.4) foram removidas em ~3h. Verifique sua versão com npm list axios e confira o lockfile.

Como sei se o RAT rodou na minha máquina?

Verifique artefatos:

  • macOS: /Library/Caches/com.apple.act.mond

  • Linux: /tmp/ld.py

  • Windows: %PROGRAMDATA%\wt.exe

  • Ou node_modules/plain-crypto-js no projeto

O dropper se limpa, então ausência de artefatos não garante segurança se você instalou a versão vulnerável.

Devo parar de usar o Axios completamente?

Não necessariamente. O Axios segue bem mantido. Reavalie se realmente precisa de um cliente HTTP de terceiros: Node.js 18+ traz fetch nativo; para testes, considere plataformas como o Apidog.

Como posso prevenir ataques à cadeia de suprimentos em meus projetos?

  • Fixe versões exatas

  • Commit lockfiles

  • Execute npm ci --ignore-scripts no CI/CD

  • Audite dependências

  • Verifique assinaturas via npm audit signatures

  • Reduza dependências npm

  • Prefira plataformas integradas para testes de API

Este ataque foi relacionado ao vazamento do código-fonte do Claude Code?

Não. Ambos ocorreram em 31/03/2026, mas são incidentes distintos.

Quem estava por trás do ataque ao Axios?

O ataque é atribuído ao grupo UNC1069 (Coreia do Norte). Malware no macOS apresenta sobreposição com WAVESHAPER, rastreado pela Mandiant.

Quantos desenvolvedores foram afetados?

As versões maliciosas ficaram ativas por 2–3 horas, com exposição potencial ampla. Não há números oficiais. StepSecurity confirmou que o dropper contatou o C2 em 1.1s após início do npm install.

O Apidog pode ajudar a prevenir ataques à cadeia de suprimentos?

Sim, ao fornecer um cliente HTTP integrado para testes, debug e documentação de API. Você elimina dependências npm como Axios/node-fetch em seu fluxo de teste, reduzindo a superfície de ataque.

Principais conclusões

  • O ataque ao Axios comprometeu potencialmente mais de 83 milhões de downloads semanais via conta de mantenedor roubada

  • O RAT visa macOS, Windows e Linux, roubando credenciais, chaves SSH e tokens de nuvem

  • Verifique seus sistemas imediatamente seguindo os passos acima

  • Fixe versões exatas e desative scripts postinstall no CI/CD

  • Reduza dependências HTTP usando ferramentas integradas como o Apidog

  • A segurança de registros de pacotes é um desafio sistêmico para npm, PyPI e RubyGems

O ataque ao Axios é um alerta: cada dependência no seu node_modules é uma decisão de confiança. Faça essas escolhas deliberadamente.

Was this article helpful?

Sign in to highlight and annotate this article

AI
Ask AI about this article
Powered by AI News Hub · full article context loaded
Ready

Conversation starters

Ask anything about this article…

Daily AI Digest

Get the top 5 AI stories delivered to your inbox every morning.

Knowledge Map

Knowledge Map
TopicsEntitiesSource
Como o Ataq…claudemodelreleaseproductreportclaude codeDEV Communi…

Connected Articles — Knowledge Graph

This article is connected to other articles through shared AI topics and tags.

Knowledge Graph100 articles · 226 connections
Scroll to zoom · drag to pan · click to open

Discussion

Sign in to join the discussion

No comments yet — be the first to share your thoughts!

More in Models