Atac Supply Chain npm Axios: Sumar & Indicatori de Compromitere

Pe 31 martie 2026, versiuni malițioase ale axios au fost publicate pe npm, instaland un Remote Access Trojan cross-platform. Ce s-a intamplat, cum detectezi și ce trebuie să faci.

Ce s-a intamplat

Pe 31 martie 2026, un atacator a compromis contul npm al maintainerului principal axios, Jason Saayman. Emailul asociat contului a fost schimbat in ifstap@proton.me, iar un token npm clasic furat a fost folosit pentru a publica doua versiuni malițioase: axios@1.14.1 (etichetata latest) și axios@0.30.4 (etichetata legacy).

Ambele versiuni au introdus o dependință ascunsa pe plain-crypto-js@4.2.1, un pachet publicat de pe un alt cont al atacatorului (nrwise@proton.me). Acest pachet conținea un hook postinstall care instala un Remote Access Trojan cross-platform, capabil de execuție arbitrara de comenzi pe Windows, Linux și macOS.

Tokenul npm clasic a ocolit protecțiile GitHub Actions OIDC care erau in vigoare pentru publicarile legitime. Fereastra de expunere a durat aproximativ trei ore (00:21 - 03:15 UTC) inainte ca npm sa intervina și sa retragă ambele versiuni.

Ultima versiune legitimă, axios@1.14.0, a fost publicată pe 27 martie prin GitHub Actions OIDC și ramane sigura.

Ai nevoie de ajutor să verifici dacă infrastructura ta este afectată? Echipa noastră poate audita mediile tale, scana pentru IOC-uri și securiza pipeline-ul CI/CD. Vezi Servicii IT Administrate sau Externalizare IT pentru protecție continuă.

Cronologie

Ora (UTC)Eveniment
27 mar, 19:01axios@1.14.0 publicat legitim prin GitHub Actions OIDC
30 mar, 05:57plain-crypto-js@4.2.0 publicat (decoy curat)
30 mar, 23:59plain-crypto-js@4.2.1 publicat cu hook postinstall malițios
31 mar, 00:21axios@1.14.1 publicat de pe contul compromis
31 mar, 01:00axios@0.30.4 publicat de pe contul compromis
31 mar, 03:15npm a retras ambele versiuni malițioase

Indicatori de compromitere

Pachete malițioase

PachetVersiuneSHA-1
axios1.14.12553649f232204966871cea80a5d0d6adc700ca
axios0.30.4d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71
plain-crypto-js4.2.107d889e2dadce6f3910dcbc253317d28ca61c766

Infrastructura C2

IndicatorTip
sfrclak.com:8000Domeniu C2
142.11.206.73Adresa IP C2
6202033ID campanie

Conturi email atacator

EmailUtilizare
ifstap@proton.meSchimbat pe contul compromis al maintainerului axios
nrwise@proton.mePublicatorul plain-crypto-js

Artefacte payload etapa 2

Windows:

  • %PROGRAMDATA%\wt.exe (copie PowerShell deghizata)
  • %TEMP%\6202033.vbs (loader VBScript)
  • %TEMP%\6202033.ps1 (payload PowerShell)

Linux:

  • /tmp/ld.py (script Python RAT)

macOS:

  • /Library/Caches/com.apple.act.mond (binar Mach-O 657 KB, x86_64)

Detecție

1. Verifică lockfile-urile

Linux/macOS (Bash):

bashgrep -E "axios@1\.14\.1|axios@0\.30\.4|plain-crypto-js" package-lock.json yarn.lock pnpm-lock.yaml

Windows (PowerShell):

powershellSelect-String -Pattern "axios@1\.14\.1|axios@0\.30\.4|plain-crypto-js" -Path package-lock.json,yarn.lock,pnpm-lock.yaml

2. Caută dependința malițioasă

Linux/macOS (Bash):

bashfind node_modules -type d -name "plain-crypto-js" 2>/dev/null
npm ls axios

Windows (PowerShell):

powershellGet-ChildItem -Path node_modules -Recurse -Directory -Filter "plain-crypto-js" -ErrorAction SilentlyContinue
npm ls axios

3. Scanează mai multe proiecte simultan

Linux/macOS (Bash):

bashfind /path/to/projects -maxdepth 5 \( -name "package-lock.json" -o -name "yarn.lock" -o -name "pnpm-lock.yaml" \) -exec grep -l "axios.*1\.14\.1\|axios.*0\.30\.4\|plain-crypto-js" {} \;

Windows (PowerShell):

powershellGet-ChildItem -Path C:\path\to\projects -Recurse -Depth 5 -Include package-lock.json,yarn.lock,pnpm-lock.yaml | Select-String -Pattern "axios.*1\.14\.1|axios.*0\.30\.4|plain-crypto-js" -List | Select-Object Path

4. Verifică artefacte pe disc

Windows (PowerShell):

powershellTest-Path "$env:ProgramData\wt.exe"
Test-Path "$env:TEMP\6202033.vbs"
Test-Path "$env:TEMP\6202033.ps1"

Linux:

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

macOS:

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

5. Verifică conexiunile de rețea

Windows (PowerShell):

powershellGet-DnsClientCache | Where-Object Entry -match "sfrclak"
Get-NetTCPConnection | Where-Object { (Resolve-DnsName $_.RemoteAddress -ErrorAction SilentlyContinue).NameHost -match "sfrclak" }

Linux:

bashss -tnp | grep -i sfrclak
grep "sfrclak" /var/log/syslog /var/log/dns*

macOS:

bashlsof -i -nP | grep -i sfrclak
log show --predicate 'process == "mDNSResponder"' --last 24h | grep sfrclak

Remediere

Pași imediați

  1. Verifică expunerea: verifică daca vreun sistem a rulat npm install intre 00:21 și 03:15 UTC pe 31 martie 2026
  2. Cauta IOC-uri: verifică artefactele de pe disc și logurile DNS/firewall pentru conexiuni catre sfrclak.com sau 142.11.206.73
  3. Verifică registrele private: inspectează mirror-urile Verdaccio, Artifactory sau GitHub Packages pentru versiuni malițioase stocate in cache

Daca se gasesc IOC-uri

Tratează sistemul afectat ca complet compromis:

  • Rotește toate credențialele, cheile API, tokenurile și cheile SSH de pe mașinile afectate
  • Reconstruiește imaginile Docker și mediile CI/CD de la zero
  • Verifica logurile de acces pentru mișcare laterala

Curațare

  • Fixează axios la v1.14.0 și verifică checksum-urile
  • Rulează npm uninstall plain-crypto-js
  • Rulează npm cache clean --force

Hardening

  • Folosește lockfile-uri consecvent cu npm ci in loc de npm install
  • Seteaza npm config set min-release-age 3 pentru a respinge pachetele publicate de mai puțin de 3 zile
  • Inlocuiește tokenurile npm clasice cu tokenuri granulare limitate la pachete specifice
  • Aplica restricții IP pe tokenuri
  • Activează npm provenance pentru pachetele publicate
  • Implementeaza monitorizare a dependințelor (Socket, Snyk sau Dependabot)

Analiza completa

Aceasta pagina este un sumar cu IOC-uri și pași de detecție. Pentru analiza tehnica completa, inclusiv deobfuscarea payload-ului, analiza protocolului C2 și maparea MITRE ATT&CK, citește articolul complet pe blogul nostru:

Atac Supply Chain npm Axios: Analiza Completa pe Blogul Salt Data

Ești ingrijorat de atacurile supply chain in organizația ta?

Ajutam companiile sa implementeze monitorizarea dependințelor, politici de lockfile și securizarea CI/CD pentru a preveni incidente ca acesta.