Red Hat: 32 pacchetti npm compromessi da worm auto-propagante

Worm Miasma infetta 32 pacchetti npm Red Hat: furto credenziali via OIDC, persistenza AI tool, dead-man switch. Chi ha installato dal 1° giugno deve ruotare tu…

Contenuto

Red Hat: 32 pacchetti npm compromessi da worm auto-propagante
Red Hat: 32 pacchetti npm compromessi da worm auto-propagante

Il 1° giugno 2026, 96 versioni di 32 pacchetti ufficiali @redhat-cloud-services sono state compromesse su npm. Il vettore: un account GitHub di un dipendente Red Hat violato, che ha pushato commit orfani su due repository RedHatInsights bypassando la code review. I workflow GitHub Actions compromessi hanno ottenuto token OIDC short-lived e li hanno usati per pubblicare pacchetti malevoli. Il risultato è un worm auto-propagante denominato Miasma, variante di Mini Shai-Hulud.

Punti chiave
  • 96 versioni di 32 pacchetti npm ufficiali Red Hat compromesse il 1° giugno 2026
  • ~116.991 download settimanali cumulativi (tutte le versioni, Aikido); ~80.000 download settimanali delle versioni affette (Wiz) — metriche diverse, non confrontabili direttamente
  • Vettore: account GitHub dipendente con commit orfani che hanno bypassato code review
  • Esecuzione via hook preinstall durante npm install, payload 4,2 MB con quattro livelli di offuscamento
  • Autopropagazione tramite parametro bypass_2fa su token npm rubati; payload crittograficamente unico per infezione
  • Persistenza in Claude Code, VS Code, servizi di sistema; dead-man switch con capacità di comandi distruttivi

Come il pipeline compromesso ha accelerato l'attacco

Il trusted publishing di npm, basato su OIDC, scambia token short-lived e scoped tra GitHub Actions e il registro. Secondo Aikido, l'account dipendente violato ha pushato commit orfani sui repository RedHatInsights/javascript-clients e correlati. Questi commit hanno innescato workflow che hanno ottenuto token OIDC legittimi e li hanno usati per pubblicare pacchetti malevoli.

StepSecurity ha confermato la catena dal repository RedHatInsights. I token erano effimeri ma sufficienti a pubblicare pacchetti che, una volta installati, rubavano nuovi token per l'autopropagazione. Il protocollo OIDC non è stato violato; è stato il contesto di esecuzione a essere compromesso.

L'anatomia del payload: quattro strati di offuscamento

Il file index.js, 4,2 MB, si attiva tramite lo script preinstall nel package.json. Questo significa esecuzione durante l'installazione, non durante il runtime applicativo.

StepSecurity ha eseguito analisi dinamica controllata in ambiente Harden-Runner. Il primo strato è un wrapper try/eval. Il secondo applica codifica ROT-21. Il terzo nasconde blob crittografati AES-128-GCM. Il quarto impiega PBKDF2 con 200.000 iterazioni e un cifrario personalizzato basato su Fisher-Yates shuffle con parametri hardcoded.

Il payload deoffuscato implementa raccolta dati estesa. Secondo StepSecurity, il malware legge /proc/<pid>/mem del processo Runner.Worker in memoria, estraendo segreti dalla memoria del processo. Il meccanismo aggira la mascheratura dei log di GitHub Actions.

"Il payload legge da /proc/<pid>/mem per estrarre segreti live direttamente dalla memoria del processo Runner.Worker" — StepSecurity

Exfiltrazione e autopropagazione

I dati raccolti escono tramite due canali. Il primario simula una chiamata a api.anthropic[.]com:443/v1/api — dominio reale di Anthropic, ma percorso inesistente, usato come mimetismo. Il fallback sfrutta l'API GitHub stessa.

L'autopropagazione è il tratto distintivo di questa variante. StepSecurity ha recuperato codice JavaScript che invoca npmPublish con il parametro bypass_2fa, eludendo l'autenticazione a due fattori sui token npm rubati. Ogni macchina compromessa diventa nodo di propagazione autonoma.

Wiz, via fonte giornalistica, ha evidenziato che questa variante aggiunge collettori per identità GCP e Azure rispetto alle versioni precedenti. Wiz e Socket segnalano inoltre che ogni infezione genera un payload crittograficamente unico, complicando il rilevamento.

Persistenza e dead-man switch

Il malware stabilisce persistenza attraverso multiple vie: hook SessionStart per Claude Code, modifica di tasks.json in VS Code, e servizi di sistema (kitty-monitor.service su Linux, com.user.kitty-monitor.plist su macOS).

Il componente gh-token-monitor, documentato da CyberSecurityNews, funziona da dead-man switch. Secondo la fonte, può eseguire comandi distruttivi se i token vengono revocati prima che la persistenza sia rimossa. Il brief non chiarisce se questa capacità sia stata osservata in esecuzione o solo ricostruita dal codice deoffuscato.

Il payload verifica la presenza di endpoint protection da CrowdStrike, SentinelOne, Carbon Black e StepSecurity Harden-Runner prima di eseguire. Evita inoltre l'esecuzione su sistemi con lingua russa.

Cosa fare adesso

  • Chiunque abbia installato pacchetti @redhat-cloud-services dal 1° giugno 2026 deve trattare come compromesse tutte le credenziali CI, cloud, SSH e npm associate, e ruotarle immediatamente — raccomandazione esplicita di Aikido
  • La sola disinstallazione del pacchetto o la cancellazione di node_modules è insufficiente: Socket ha avvertito che i meccanismi di persistenza in strumenti di sviluppo e servizi di sistema sopravvivono alla rimozione del pacchetto originale
  • Verificare la presenza di file sospetti in ~/.config/claude/, .vscode/tasks.json, e servizi di sistema con nome "kitty-monitor"
  • Controllare i log di workflow GitHub Actions per pubblicazioni anomale dal 29 maggio 2026 in poi

Il limite aperto: OIDC e pipeline compromessi

Il caso Miasma evidenzia un conflitto non risolto. Gli OIDC token short-lived di GitHub Actions sono progettati per ridurre il rischio di furto di credenziali persistenti. Ma quando il pipeline stesso è compromesso, quegli stessi token diventano strumento per pubblicare malware con apparente legittimità.

Il brief non presenta questo come caso chiuso. La fonte primaria strutturata (Aikido) fornisce i dati quantitativi; StepSecurity aggiunge l'analisi dinamica; Wiz via aggregatore giornalistico fornisce l'attribuzione all'account dipendente. La convergenza è significativa ma non completa: l'identità esatta dell'attore resta incerta, il tool Mini Shai-Hulud è open-source dal 12 maggio 2026, e la dichiarazione Red Hat di "nessun impatto cliente" è preliminare.

La domanda che il brief lascia aperta — come mitigare l'abuso di token legittimi in pipeline compromessi senza invalidare i benefici del trusted publishing — non ha risposta definitiva nei fatti documentati.

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti

Link utili

Apri l'articolo su DeafNews