Per circa novanta minuti nella serata del 22 aprile, il pacchetto ufficiale della CLI di Bitwarden distribuito su npm conteneva un malware. Chiunque abbia eseguito npm install @bitwarden/cli tra le 17:57 e le 19:30 (ora statunitense della costa est) ha installato una versione alterata del pacchetto, capace di sottrarre credenziali in silenzio mentre l’applicazione continuava a funzionare normalmente.
L’incidente si inserisce in una campagna già attiva, battezzata “Shai-Hulud” e arrivata alla sua terza ondata, che prende di mira strumenti di sviluppo diffusi attraverso le pipeline di distribuzione automatica. Il vettore usato per Bitwarden è stata una GitHub Action compromessa nel sistema di rilascio del progetto.
// affiliato ▸ Purism · Hardware libero, privacy garantita · Scopri i prodotti →
Come funzionava l’attacco
Gli attaccanti non hanno costruito il pacchetto da zero: hanno preso la versione legittima precedente (2026.3.0), vi hanno iniettato due file (bw_setup.js e bw1.js) e aggiunto un hook che si attivava automaticamente durante l’installazione, prima ancora che l’applicazione girasse. L’utente non vedeva nulla di anomalo, il comando bw funzionava come al solito.
Il loader scaricava in silenzio il runtime Bun da GitHub per eseguire il payload principale, una scelta tecnica pensata per evitare i sistemi di rilevamento tarati sui processi Node.js sospetti. Una volta avviato, il malware raccoglieva token GitHub e npm, chiavi SSH, file .env, cronologia delle shell, credenziali per i principali servizi cloud (AWS, GCP, Azure) e, esplicitamente, configurazioni dei principali strumenti AI da riga di comando: Claude Code, Cursor, Kiro, Codex CLI e Aider. Il materiale veniva cifrato con AES-256-GCM e inviato a un dominio controllato dagli attaccanti (audit.checkmarx[.]cx) costruito per sembrare quello della società di sicurezza Checkmarx, il cui dominio reale è .com.
Se i token GitHub trovati erano validi, il malware li usava per iniettare workflow malevoli in ogni repository accessibile, trasformando il singolo sviluppatore compromesso in un punto d’ingresso per attacchi a cascata sull’intera catena di distribuzione. Come canale di riserva, il codice usava GitHub stesso per le comunicazioni, aggirando i filtri basati sul blocco per dominio.
Chi è a rischio e cosa fare
Bitwarden ha confermato che nessun dato degli utenti finali è stato toccato: il problema riguarda esclusivamente il pacchetto npm della CLI, non l’estensione browser, il server MCP né i dati conservati nei vault. Il pacchetto malevolo è già rimosso da npm.
A rischio sono gli sviluppatori che hanno installato la versione 2026.4.0 nella finestra indicata. I passi consigliati: verificare la presenza dei file bw_setup.js e bw1.js nel pacchetto installato, ruotare subito tutti i token e le credenziali potenzialmente esposti (GitHub, npm, cloud, chiavi SSH, API key degli strumenti AI) e controllare il proprio account GitHub per repository o workflow creati senza autorizzazione.
Per la versione 2026.4.0 è in corso l’emissione di un CVE. Secondo il ricercatore Adnan Khan, si tratterebbe della prima compromissione documentata di un pacchetto pubblicato tramite il sistema di pubblicazione attendibile di npm.


Mastodon
Telegram
Bluesky
Lascia un commento