# Axios Supply Chain Attack 2026
> [!danger] Campanha de Supply Chain Ativa — npm Comprometido
> Em 30-31 mar 2026, o pacote npm Axios (100M+ downloads/semana) foi comprometido via conta de mantenedor roubada. Versões 1.14.1 e 0.30.4 instalavam um RAT dropper multiplataforma com C2 ativo. npm removeu os pacotes maliciosos.
## Visão Geral
Na madrugada de 31 de março de 2026, dois versões do pacote npm [[axios|Axios]] foram públicadas com código malicioso: `1.14.1` e `0.30.4`. A campanha explorou o comprometimento de uma conta de mantenedor com longa história no projeto, contornando completamente os controles de segurança do GitHub Actions (sem provenance SLSA, sem attestation OIDC).
O Axios é um dos pacotes npm mais utilizados no ecossistema JavaScript, com estimativa de 100 milhões de downloads por semana e dependência direta ou transitiva em milhões de projetos. A janela de exposição foi de aproximadamente 6 a 12 horas antes de a npm remover os pacotes maliciosos.
O ataque introduziu uma **dependência fantasma** chamada `
[email protected]` — um pacote que não tem relação funcional com o Axios mas que age como um **dropper de RAT multiplataforma** via script `postinstall`. O RAT contata um servidor C2 para baixar payloads de segundo estágio específicos por plataforma (Windows, macOS, Linux), e então **apaga seus rastros** sobrescrevendo o `package.json` com uma versão limpa.
O incidente expõe uma lacuna crítica na cadeia de confiança do ecossistema npm: atacantes com acesso a tokens de longa duração podem públicar versões maliciosas sem disparar alertas nos pipelines de CI/CD modernos.
## Linha do Tempo
```mermaid
graph LR
A["~18h antes<br/>Decoy limpo<br/>
[email protected]"] --> B["30 mar 2026 ~23:00 UTC<br/>Conta npm comprometida<br/>Token de longa duração"]
B --> C["30 mar ~23:30 UTC<br/>axios 1.14.1 publicado<br/>Dependência maliciosa injetada"]
C --> D["30 mar ~23:39 UTC<br/>axios 0.30.4 publicado<br/>Branch 0.x também comprometida"]
D --> E["31 mar ~04:00 UTC<br/>Pesquisadores detectam<br/>Reddit / GitHub alertas"]
E --> F["31 mar ~08:00 UTC<br/>npm remove pacotes<br/>Janela: ~8 horas"]
F --> G["31 mar<br/>Comunidade confirma IOCs<br/>C2 sfrclak.com desativado"]
```
## Técnica de Ataque — Detalhes
### Vetor de Acesso Inicial
O atacante comprometeu uma **conta npm com token de longa duração** de um mantenedor ativo do projeto Axios. Sinais de comprometimento:
- Ausência de tag GitHub para as versões públicadas (1.14.1, 0.30.4)
- SLSA provenance attestations presentes na 1.14.0, completamente ausentes nas versões maliciosas
- Email do publisher alterado do endereço CI-vinculado para conta Proton Mail
### Payload: plain-crypto-js RAT Dropper
O pacote `
[email protected]` foi adicionado como dependência do Axios e executado automaticamente via script `postinstall` no momento do `npm install`. O dropper:
1. Detecta a plataforma (Windows/macOS/Linux)
2. Contata C2 em `sfrclak[.]com:8000` (IP: 142.11.206.73)
3. Baixa payload de segundo estágio específico por plataforma
4. **Apaga rastros:** sobrescreve `package.json` com versão limpa, eliminando evidências forenses
5. Executa o payload baixado com persistência no sistema
### IOCs Confirmados
| Tipo | Indicador | Contexto |
|------|-----------|---------|
| Domínio C2 | `sfrclak[.]com` | Servidor de comando e controle |
| IP C2 | `142.11.206.73` | Endereço do servidor C2 |
| Porta C2 | `8000` | Porta não padrão |
| Campaign ID | `6202033` | Identificador de campanha no C2 |
| Arquivo Windows | `%PROGRAMDATA%\wt.exe` | Cópia maliciosa do PowerShell |
| VBScript loader | `%TEMP%\6202033.vbs` | Loader transiente |
| PS payload | `%TEMP%\6202033.ps1` | Payload PowerShell transiente |
| Pacote npm | `
[email protected]` | RAT dropper (removido) |
| Pacote npm | `
[email protected]` | Versão comprometida (removida) |
| Pacote npm | `
[email protected]` | Versão comprometida (removida) |
### Técnica de Staging — "Decoy Limpo"
Aproximadamente 18 horas antes do ataque principal, o atacante públicou a versão `
[email protected]` — uma versão limpa e sem funcionalidade maliciosa. Isso estabeleceu um histórico de atividade no registry npm, tornando a versão `4.2.1` menos suspeita para sistemas de detecção baseados em reputação de pacotes.
## Impacto
A campanha afetou qualquer desenvolvedor ou pipeline de CI/CD que executou `npm install` com versões floating de Axios (`^1.14.0` ou `^0.30.0`) durante a janela de exposição (~8h).
**Ambientes com maior risco:**
- Aplicações Node.js com dependência direta em Axios
- Pipelines de CI/CD (GitHub Actions, GitLab CI, Jenkins) sem lock files rigorosos
- Ambientes de desenvolvimento onde `npm install` é executado automaticamente
- Contêineres reconstruídos durante a janela (versão maliciosa pode ter sido cacheada)
**Dados potencialmente exfiltrados:**
- Credenciais de ambiente (variáveis de ambiente, `.env` files)
- Tokens de CI/CD e cloud providers
- Chaves de API presentes no ambiente de execução
- Dados de aplicação processados pelo servidor comprometido
## Mitigação e Remediação
**Ações imediatas:**
1. Rolar de volta para `
[email protected]` (última versão limpa)
2. Verificar `package-lock.json` — confirmar ausência de `plain-crypto-js`
3. **Rotacionar TODAS as credenciais** presentes em ambientes que executaram `npm install` na janela
4. Auditoria de tokens: GitHub, AWS, GCP, Azure, Stripe, e qualquer provider com credenciais no ambiente
5. Escanear por presença dos artefatos maliciosos: `%PROGRAMDATA%\wt.exe`, `%TEMP%\6202033.*`
6. Bloquear C2: `sfrclak[.]com` e `142.11.206.73` no firewall
**Recomendações estruturais:**
- Adotar `npm ci` (respeita lock file estritamente) em vez de `npm install` em produção
- Configurar `--exact` ou `--save-exact` para evitar versões flutuantes (`^`, `~`)
- Implementar verificação de provenance SLSA para dependências críticas
- Considerar `minimum-release-age` (ex: 7 dias) para novas versões de pacotes em produção
- Monitorar alerts do Socket.dev, Snyk e similares para detecção de pacotes suspeitos
## LATAM / Brasil
O Axios é universalmente adotado no ecossistema JavaScript brasileiro. O impacto desta campanha atinge:
- **[[technology|Startups e fintechs]]** com pipelines de CI/CD intensivos — alta probabilidade de exposição durante a janela
- **[[financial|Setor financeiro digital]]** — aplicações Node.js que processam transações e dados de clientes
- **Desenvolvedores individuais** — aqueles que rodaram `npm install` localmente com versões afetadas
A rotação de credenciais é crítica especialmente para ambientes com acesso a sistemas de pagamento, APIs bancárias (Open Finance Brasil) e dados sob [[lgpd|LGPD]].
## Referências
- [The Hacker News — Axios Supply Chain Attack](https://thehackernews.com/2026/03/axios-supply-chain-attack-pushes-cross.html)
- [Reddit r/netsec — IOCs e análise detalhada](https://www.reddit.com/r/cybersecurity/comments/1s8f2ye/axios_supply_chain_attack_iocs_and_what_actually/)
- [Reddit r/cybersecurity — Discussão](https://www.reddit.com/r/netsec/comments/1s8e9yk/axios_npm_package_compromised_in_supply_chain/)
## Notas Relacionadas
**Malware:** [[plain-crypto-js-rat|plain-crypto-js RAT]]
**TTPs:** [[t1195-supply-chain-compromise|T1195 - Supply Chain Compromise]] · [[t1059-command-and-scripting-interpreter|T1059 - Command and Scripting Interpreter]]
**Setores:** [[technology|Tecnologia]] · [[financial|Financeiro]]
**Contexto:** [[teamPCP|TeamPCP Supply Chain]] · [[t1078-valid-accounts|T1078 - Valid Accounts]]