L'attacco alla catena di approvvigionamento di Axios mina la fiducia in npm

| 31, 2026 marzo
Il logo del client HTTP Axios, che consiste semplicemente nella parola "AXIOS" scritta in viola

I ricercatori hanno scoperto che alcune versioni compromesse di Axios installavano un trojan di accesso remoto.

Axios è un client HTTP basato su Promise per Node.js, ovvero uno strumento di supporto che gli sviluppatori utilizzano dietro le quinte per consentire alle applicazioni di comunicare con Internet. Ad esempio, Axios rende richieste come «recupera i miei messaggi dal server» o «invia questo modulo al sito web» più semplici e affidabili per i programmatori, evitando loro di dover scrivere personalmente grandi quantità di codice di rete di basso livello.

Poiché funziona sia nel browser che sui server (Node.js), molti progetti moderni basati su JavaScript lo includono come componente standard. Anche se non installi mai Axios direttamente, potresti imbatterti in esso indirettamente quando:

  • Utilizza applicazioni web realizzate con framework come React, Vue o Angular.
  • Utilizza app mobili o desktop realizzate con tecnologie web come Electron, React Native e altre.
  • Scopri i piccoli strumenti SaaS (Software-as-a-Service), i pannelli di amministrazione o i servizi self-hosted realizzati dagli sviluppatori che hanno scelto Axios.

Si potrebbe paragonare all'impianto idraulico di casa tua. Di solito non ti accorgi dei tubi, ma sono loro a portare l'acqua fino al rubinetto che apri. E non hai bisogno di sapere dove si trovano finché non si verifica una perdita.

Che cosa è successo?

Sfruttando le credenziali compromesse di uno dei principali manutentori di Axios, un hacker ha pubblicato pacchetti dannosi su npm: axios@1.14.1 e axios@0.30.4. Le versioni dannose inseriscono una nuova dipendenza, plain-crypto-js@4.2.1, che non viene mai importato in nessuna parte del codice sorgente di Axios. 

Complessivamente, i due pacchetti interessati raggiungono fino a 100 milioni di download settimanali su npm, il che significa che hanno un impatto enorme su app web, servizi e pipeline.

È importante sottolineare che la versione di Axios interessata non compare nei tag ufficiali GitHub del progetto. Ciò significa che le persone e i progetti coinvolti sono sviluppatori e ambienti che hanno eseguito il comando `npm install`, il quale ha risolto a:

  • axios@1.14.1 axios@0.30.4, o
  • la dipendenza plain-crypto-js@4.2.1.

Qualsiasi flusso di lavoro che abbia installato una di queste versioni con gli script abilitati potrebbe aver esposto tutte le informazioni riservate inserite (chiavi cloud, chiavi di distribuzione dei repository, token npm, ecc.) a un aggressore interattivo, poiché lo script post-installazione (node setup.js) che viene eseguito automaticamente durante l'installazione tramite npm scaricava un dropper offuscato che recuperava un payload RAT specifico per la piattaforma (macOS, Windows o Linux).

Se sei uno sviluppatore che utilizza Axios, considera ogni macchina su cui sono state installate le versioni compromesse come potenzialmente completamente compromessa e aggiorna le credenziali di sicurezza. L'autore dell'attacco potrebbe aver ottenuto l'accesso al repository, alle chiavi di firma, alle chiavi API o ad altre credenziali di sicurezza che potrebbero essere utilizzate per introdurre backdoor nelle versioni future o per attaccare il tuo backend e i tuoi utenti.

Gli utenti delle app realizzate con Axios non hanno alcun motivo diretto di preoccuparsi. Se state semplicemente caricando la vostra app in un browser, non state eseguendo direttamente questo RAT tramite Axios. Il vettore di infezione è la fase di installazione/compilazione, non l'esecuzione dell'app.

Indicatori di compromesso (IOC)

Come hanno sottolineato i ricercatori, il dropper del malware cancella ogni traccia del proprio passaggio:

«Qualsiasi controllo effettuato dopo l'infezione su node_modules/plain-crypto-js/package.json mostrerà un manifesto completamente pulito. Non è presente alcuno script post-installazione, nessun file setup.js e nessuna traccia che indichi che sia mai stato installato qualcosa di dannoso. L'esecuzione di npm audit o la verifica manuale della directory del pacchetto installato non rivelerà la compromissione.»

Quelli che dovresti cercare, quindi, sono questi IOC:

Dominio: sfrclak[.]com

Indirizzo IP: 142.11.206.73

(entrambi bloccati dai Malwarebytes )

File:

  • macOS: /Library/Caches/com.apple.act.mond
  • Linux: /tmp/ld.py 
  • Windows: %PROGRAMDATA%\wt e %TEMP%\6202033.vbs/.ps1, che esistono solo per un breve periodo durante l'esecuzione

Pacchetti npm dannosi:

axios@1.14.1, checksum SHA-256: 2553649f2322049666871cea80a5d0d6adc700ca

axios@0.30.4, checksum SHA-256: d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71

plain-crypto-js@4.2.1, checksum SHA-256: 07d889e2dadce6f3910dcbc253317d28ca61c766


Non ci limitiamo a segnalare le minacce, ma le eliminiamo.

I rischi per la sicurezza informatica non dovrebbero mai diffondersi al di là di un titolo di giornale. Tenete le minacce lontane dai vostri dispositivi scaricando Malwarebytes oggi stesso.

Informazioni sull'autore

Pieter Arntz

Ricercatore nel campo della sicurezza informatica

È stato un MVP Microsoft per la sicurezza dei consumatori per 12 anni consecutivi. Sa parlare quattro lingue. Profuma di mogano e di libri rilegati in pelle.