È stato osservato un nuovo attacco attivo alla supply-chain di npm che abusa di credenziali di manutentori compromesse per auto-propagare codice dannoso tra i pacchetti dell'ecosistema Node.js. Il malware ruba il materiale di autenticazione (token npm, credenziali cloud, segreti CI/CD, chiavi SSH e dati del portafoglio) e utilizza i token di pubblicazione scoperti per iniettarsi in altri pacchetti di proprietà dello stesso manutentore, creando una diffusione laterale simile a un worm.

La campagna è stata identificata da Socket e StepSecurity e colpisce diversi pacchetti pubblicati da Namastex Labs, con almeno 16 pacchetti compromessi confermati al momento della segnalazione. A causa del suo modello di propagazione guidato dalle credenziali, il raggio d'azione può espandersi rapidamente in ambienti in cui gli sviluppatori o i sistemi CI mantengono i permessi di pubblicazione.

Compromissione iniziale ed esecuzione del payload

Il codice dannoso è stato iniettato in pacchetti npm legittimi e viene eseguito automaticamente quando il pacchetto viene installato. Una volta in esecuzione, il payload esegue un'ampia scoperta segreta sul sistema host, effettuando la scansione di:

    • token di pubblicazione npm
    • chiavi API (fornitori di cloud, registri, piattaforme LLM)
    • chiavi SSH e credenziali CI/CD
    • file di configurazione di Kubernetes e Docker
    • segreti memorizzati nel browser da Chrome e Firefox, compresi i portafogli di criptovalute (MetaMask, Exodus, Atomic Wallet, Phantom).

Meccanismo di propagazione

Se il malware individua credenziali di pubblicazione npm valide (ad esempio, tramite variabili d'ambiente o ~/.npmrc), esso:

    • enumera tutti i pacchetti npm che il token compromesso è autorizzato a pubblicare
    • inietta lo stesso payload dannoso in tali pacchetti
    • li ripubblica con numeri di versione incrementati
    • Abilita l'infezione ricorsiva quando gli sviluppatori a valle installano le nuove versioni.

I ricercatori descrivono esplicitamente il malware come un "worm della catena di distribuzione" in grado di diffondersi autonomamente senza ulteriori interventi da parte degli aggressori una volta ottenute le credenziali.

Rischio per l'intero ecosistema

Se le credenziali PyPI vengono scoperte sullo stesso sistema, il malware tenta di compromettere i pacchetti Python utilizzando un meccanismo di persistenza basato su .pth. Questo espande l'attacco al di là di JavaScript, rendendolo una minaccia alla catena di approvvigionamento multiecosistema.

Pacchetti interessati confermati

Al momento della pubblicazione, i seguenti pacchetti e versioni sono stati confermati come dannosi e devono essere considerati completamente compromessi:

    • @automagik/genie (4.260421.33–4.260421.39)
    • pgserve (1.1.11-1.1.13)
    • @fairwords/websocket (1.0.38-1.0.39)
    • @fairwords/loopback-connector-es (1.4.3-1.4.4)
    • @openwebconcept/theme-owc@1.0.3
    • @openwebconcept/design-tokens@1.0.3

Questi pacchetti sono comunemente utilizzati negli strumenti per gli agenti di intelligenza artificiale e nei servizi di dati backend, aumentando il valore degli ambienti compromessi.

Impatto

    • Furto di credenziali che porta alla compromissione di cloud, CI/CD e repository.
    • Pubblicazione non autorizzata di ulteriori pacchetti dannosi
    • Compromissione a valle di applicazioni dipendenti
    • Perdita di proprietà intellettuale e di segreti
    • Furto di portafogli di criptovalute in ambienti di sviluppatori

Indicatori di compromissione

Le organizzazioni dovrebbero indagare su:

    • Aggiornamenti inattesi della versione del pacchetto npm senza una corrispondente motivazione di modifica upstream
    • Pubblicazioni non autorizzate da account di manutentori
    • accesso ai token npm al di fuori dei flussi di lavoro CI/CD previsti
    • presenza di script sconosciuti o di JavaScript offuscato nelle dipendenze
    • connessioni sospette in uscita dalle pipeline di compilazione dopo le installazioni di npm

La rapida cadenza di ripubblicazione (più versioni dannose rilasciate nell'arco di poche ore) è un indicatore comportamentale degno di nota in questa campagna.

Mitigazioni consigliate

    • Rimuovere tutte le versioni di pacchetti dannosi identificate dagli ambienti e dalle pipeline.
    • Ruotare tutti i segreti potenzialmente esposti sui sistemi interessati (npm, GitHub, cloud, CI/CD).
    • Revocare i token di pubblicazione di npm e riemetterli con una portata minima.
    • Verificare la cronologia di pubblicazione per tutti gli account dei manutentori
    • Verificare la presenza di pacchetti correlati con lo stesso file public.pem, lo stesso host webhook o lo stesso schema di post-installazione.

Se siete preoccupati per una qualsiasi delle minacce descritte in questo bollettino o avete bisogno di aiuto per determinare le misure da adottare per proteggervi dalle minacce più importanti per la vostra organizzazione, contattate il vostro account manager o, in alternativa, contattateciper scoprire come potete proteggere la vostra organizzazione.