Il 2 giugno 2026 Palo Alto Networks Unit 42 ha pubblicato un report che ridefinisce il perimetro della sicurezza software. Il panorama delle minacce npm è entrato in un'era ad alta conseguenza dal settembre 2025, con il worm Shai-Hulud che ha aperto la strada a propagazione automatica, persistenza CI/CD e payload multi-stadio apparentemente legittimi. La novità più inquietante non è la violenza degli attacchi, ma la loro invisibilità: artefatti malevoli che portano firme SLSA valide, certificate da pipeline compromesse.
- Il worm Shai-Hulud del settembre 2025 ha segnato la fine dell'era "di disturbo" delle minacce npm e l'inizio di una fase ad alta conseguenza, secondo Palo Alto Networks Unit 42.
- L'11 maggio 2026 l'attacco TanStack ha generato 84 artefatti malevoli in 6 minuti, espandendosi a 373 versioni in 169 pacchetti con oltre 520 milioni di download cumulativi nella finestra di esposizione.
- Il 1 giugno 2026 almeno 32 pacchetti nel namespace @redhat-cloud-services sono stati compromessi con payload Miasma, distribuiti con SLSA provenance valida ottenuta tramite abuso di token OIDC.
- La tecnica di accesso iniziale TanStack non ha richiesto credenziali: ha concatenato tre debolezze di GitHub Actions, tra cui pull_request_target con checkout del merge ref di un fork malevolo.
Il paradosso della provenance: quando la certificazione diventa maschera
Il sistema SLSA (Supply-chain Levels for Software Artifacts) è stato creato per garantire che un pacchetto software sia realmente stato prodotto dalla pipeline dichiarata. L'attacco Red Hat del 1 giugno 2026 ha capovolto questo principio. Un account GitHub dipendente compromesso ha permesso push di commit orphan che bypassavano la code review, attivando workflow GitHub Actions che rilasciavano pacchetti con certificato accurato.
Secondo Unit 42, "the certificate was accurate, the packages really were built by that pipeline. It just also happened to have malware injected into it at the time". Il payload Miasma ha sostituito un file index.js di circa 200 KB con uno di 4,29 MB, un incremento di 25 volte che costituisce segnale di rilevamento affidabile. Il malware ha rubato credenziali AWS/GCP/Azure, token Kubernetes, secret HashiCorp Vault e secret CI/CD. Le versioni malevole hanno registrato circa 80.000 download settimanali medi nel namespace @redhat-cloud-services.
TanStack: 84 artefatti in 6 minuti senza una credenziale rubata
L'11 maggio 2026 l'attacco contro l'ecosistema TanStack ha dimostrato una nuova classe di accesso iniziale. Non è stata compromessa alcuna password: l'attaccante ha concatenato tre debolezze di GitHub Actions, nessuna sufficiente da sola. Il fork malevolo era nominato zblgg/configuration per evitare ricerche nelle liste fork. Una commit con identità spoofata "claude <claude@users.noreply.github.com>" e prefisso [skip ci] ha attivato il workflow bundle-size.yml, configurato con pull_request_target che eseguiva il checkout del merge ref del fork nel contesto del repository base.
Il payload usava Bun, runtime JavaScript alternativo, per eseguire tanstack_runner.js. In 6 minuti sono stati pubblicati 84 artefatti malevoli in 42 pacchetti @tanstack/*. Entro fine giornata, Unit 42 ha documentato 373 versioni malevole in 169 pacchetti npm. Il pacchetto @tanstack/react-router, con oltre 12,7 milioni di download settimanali, ha contribuito a una stima di circa 520 milioni di download cumulativi nella finestra di esposizione.
Da Mini Shai-Hulud alla copia cat: la democratizzazione del worm
La campagna Mini Shai-Hulud di aprile-maggio 2026, attribuita a TeamPCP, ha introdotto un'ulteriore accelerazione. Il 12 maggio 2026 TeamPCP ha rilasciato pubblicamente il codice sorgente di Mini Shai-Hulud, facilitando attività copycat. L'identità definitiva degli operatori dell'attacco Red Hat del 1 giugno rimane incerta: le TTPs sono consistenti con TeamPCP, ma il rilascio pubblico del codice rende possibile l'operazione di copie indipendenti.
Il worm originale Shai-Hulud ha segnato, secondo Unit 42, "the end of the 'nuisance' era of npm attacks and the beginning of a high-consequence threat landscape". La propagazione worm ha compromesso 57 pacchetti nel namespace @uipath/* e 19 nel namespace @squawk/*, estendendo l'attacco all'ecosistema dati aviazione. Il payload Bitwarden, impersonato come pacchetto @bitwarden/cli versione 2026.4.0, rubava credenziali cloud provider, CI/CD e workstation, poi si auto-propagava backdoorando ogni pacchetto pubblicabile dalla vittima.
"What is certain is the trend, which is that one compromised account and one CI pipeline delivered 32 trojanized packages automatically to every developer who ran npm install. Then the registry does the rest." — Unit 42, Palo Alto Networks
Perché è importante
Il dossier non specifica misure correttive rilasciate dai vendor coinvolti né tempistiche di rimedio per le pipeline compromesse. Unit 42 non documenta il numero effettivo di installazioni eseguite dei pacchetti malevoli, distinguendo tra download registrati dal registry e esecuzioni reali sui sistemi target. Il report non elenca indicatori di compromissione pubblici disponibili per verifica indipendente.
La fonte non dettaglia il meccanismo completo di tanstack_runner.js, il cui testo è troncato nel report fornito. Non emergono nel dossier sovrapposizioni infrastrutturali che colleghino con certezza l'attacco Red Hat a TeamPCP allo stato attuale. La natura esatta dei dati esposti dalle singole vittime non è quantificata: il report si limita alle categorie di secret oggetto di furto da parte del payload Miasma.
L'abisso del trust: quando il registry diventa force multiplier
Il registro npm ha smesso di essere un semplice repository di codice per diventare un moltiplicatore di forza per il malware. La struttura stessa dell'ecosistema — download automatici, dipendenze transitive, integrazione CI/CD — lavora contro i tempi di risposta umani. Un singolo account compromesso con accesso alla pipeline può propagare artefatti a milioni di sistemi prima che qualsiasi allarme sia analizzato.
Il caso TanStack mostra che la superficie di attacco non è più nel codice sorgente dei pacchetti, ma nella geometria delle autorizzazioni tra fork, workflow, merge ref e cache scope. La sicurezza della supply chain richiede ora un ripensamento del modello di confidenza: la validità della firma non implica più la legittimità del contenuto.
Domande frequenti
- I pacchetti compromessi avevano firme digitali non valide?
- No. I pacchetti Red Hat avevano SLSA provenance valida, con certificato accurato. Il problema era l'iniezione di malware nella pipeline durante la build, non la falsificazione della firma.
- Anthropic o Claude sono stati compromessi nell'attacco TanStack?
- No. L'identità "claude <claude@users.noreply.github.com>" era spoofata nella commit malevola. Non è avvenuta compromissione di sistemi Anthropic.
- Quanti download sono diventati effettivamente esecuzioni di malware?
- Il dossier non lo specifica. Unit 42 fornisce stime di download cumulativi, non dati su installazioni confermate o esecuzioni rilevate sui sistemi finali.
Fonti
Le informazioni sono basate sulla fonte citata e aggiornate al momento della pubblicazione.