Supply Chain Attack: compromissione di pacchetti npm nel namespace redhat-cloud-services (BL01/260603/CSIRT-ITA)
Data:
3 Giugno 2026
Sintesi
È stata recentemente rilevata una compromissione della catena di approvvigionamento ( supply chain attack ) che ha interessato il namespace pubblico npm @redhat-cloud-services di Red Hat , nota azienda produttrice di soluzioni software open source per il mercato enterprise.
Tipologia
- Arbitrary Code Execution
- Information Disclosure
- Security Feature Bypass
- Tampering
Descrizione
Nel dettaglio gli attaccanti, a seguito della violazione di un account GitHub associato all’organizzazione RedHatInsights , hanno iniettato codice non autorizzato all’interno delle librerie frontend utilizzate per la compilazione della Red Hat Hybrid Cloud Console, la piattaforma SaaS centralizzata che consente agli utenti di gestire, ottimizzare e monitorare le proprie infrastrutture e i servizi in ambienti di cloud ibrido.
Dettagli dell’attacco
L’attacco è stato perpetrato introducendo orphan commit [1] direttamente nei repository interessati e modificando il file di configurazione del workflow ( ci.yaml ), aggirando così le procedure interne di code review. La pipeline CI/CD ufficiale di GitHub Actions ha, di conseguenza, compilato e firmato i pacchetti integrando uno script opportunamente predisposto ( index.js ) di circa 4.2 MB, coperto da molteplici layer di offuscamento (tra cui eval() e codifica ROT [2] ). Il componente compromesso è stato successivamente distribuito sul registro pubblico npm sfruttando il meccanismo di autenticazione OIDC ( OpenID Connect ).
Il codice malevolo è configurato per eseguirsi automaticamente sfruttando l’ hook di preinstall di npm; pertanto, l’attivazione del payload avviene istantaneamente durante le comuni operazioni di npm install o npm ci , prima ancora che l’applicazione o il processo di build principale vengano avviati.
Il payload: Miasma
Il payload, denominato Miasma e identificato come variante del malware open-source Mini Shai-Hulud – sviluppato dal gruppo TeamPCP , le cui dinamiche d’attacco ed ecosistemi di riferimento sono stati oggetto di pregresse trattazioni da parte di questo CSIRT – si attiva automaticamente in fase di installazione sfruttando l’hook di preinstall di npm ( npm install / npm ci ).
Le principali peculiarità del malware includono:
- scansione dell’ambiente: analisi delle variabili d’ambiente dei runner CI/CD e delle workstation degli sviluppatori;
- Credential Harvesting: ricerca e raccolta di segreti sensibili, inclusi GITHUB_TOKEN, ACTIONS_RUNTIME_TOKEN, credenziali statiche e identità OIDC di piattaforme cloud (AWS, GCP, Azure), chiavi SSH, chiavi GPG e file di configurazione locali (es. .env);
- auto-propagazione: tentativo di utilizzare token npm eventualmente presenti sull’host infetto per pubblicare versioni malevole di altri pacchetti accessibili dall’utente compromesso, cercando di eludere la protezione 2FA tramite parametri specifici (bypass_2fa).
Secondo quanto dichiarato dal vendor, l’infrastruttura dei servizi cloud gestiti da Red Hat non risulta impattata e non sono richieste azioni dirette per i clienti di tali servizi. L’impatto è circoscritto agli ambienti di sviluppo e di build locali che hanno prelevato o aggiornato le dipendenze a partire dal 1° giugno 2026.
Prodotti e versioni affette
La compromissione ha interessato complessivamente 32 pacchetti distinti per un totale di 96 versioni malevole pubblicate nel namespace npm @redhat-cloud-services.
Tra i pacchetti identificati figurano:
- @redhat-cloud-services/types
- @redhat-cloud-services/frontend-components
- @redhat-cloud-services/rbac-client
- @redhat-cloud-services/javascript-clients-shared
- @redhat-cloud-services/host-inventory-client
- @redhat-cloud-services/chrome
Sono interessate tutte le installazioni e i processi di build che hanno referenziato tali pacchetti nel periodo temporale a partire dal 1° giugno 2026.
Azioni di mitigazione
Si raccomanda alle organizzazioni che utilizzano i pacchetti npm del namespace coinvolto di valutare l’adozione delle misure di sicurezza riportate di seguito.
- Ispezione dei Lockfile: analizzare i file di lock delle dipendenze ( package-lock.json , yarn.lock o pnpm-lock.yaml ) per identificare la presenza delle versioni compromesse dei pacchetti nel namespace @redhat-cloud-services rilasciate a partire dal 1° giugno 2026.
- Pinning delle Dipendenze: forzare il downgrade delle librerie coinvolte a versioni antecedenti alla compromissione e considerate sicure. Rimuovere i modificatori di versione flessibile (^ o ~) dai file package.json per inibire l’aggiornamento automatico a release non verificate.
- Rotazione delle Credenziali e dei Token: revocare e rigenerare tutti i segreti, credenziali e token presenti o transitati negli ambienti CI/CD e nelle workstation degli sviluppatori interessate. La misura include, in via prioritaria: token npm, GitHub Personal Access Tokens (PAT), chiavi di accesso ai provider cloud (AWS, GCP, Azure), certificati di deployment, chiavi SSH, chiavi GPG e variabili d’ambiente memorizzate nei file .env.
- Monitoraggio di Rete: implementare filtri e regole di ispezione del traffico in uscita ( egress filtering ) sugli agenti di build e sui sistemi di sviluppo, al fine di intercettare e bloccare connessioni non autorizzate verso domini o endpoint esterni usati dal malware per l’esfiltrazione dei dati.
- Bonifica degli Ambienti: considerare compromesso ogni host locale o runner di pipeline che abbia eseguito operazioni di installazione ( npm install o npm ci ) dei pacchetti interessati, a partire dal 1° giugno 2026. Sottoporre i sistemi a scansione e verificare l’eventuale presenza di modifiche persistenti ai file di configurazione globale.
[1] Orphan Commit: nel sistema di controllo versione di Git, un orphan commit (commit orfano) è un commit strutturalmente privo di qualsiasi commit genitore (parent). La sua creazione determina l’apertura di un ramo cronologico completamente isolato e indipendente all’interno del medesimo repository, disconnesso dalla storia dei rami legittimi (come main o master).
Nel contesto dell’attacco in esame, la tecnica è stata impiegata per introdurre file di configurazione alterati e script malevoli direttamente all’interno del repository, impedendo ai sistemi di monitoraggio standard e ai revisori umani di rilevare le modifiche tramite i comuni flussi di confronto visivo (diff) basati sulla cronologia lineare preesistente.
[2] Codifica ROT: algoritmo di cifratura a sostituzione monoalfabetica elementare (noto storicamente come cifrario di Cesare ) basato sullo scostamento ciclico di ogni carattere del testo di un numero fisso di posizioni all’interno dell’alfabeto. Non offrendo alcuna reale protezione crittografica, tale tecnica viene impiegata esclusivamente con finalità di offuscamento elementare, al fine di nascondere stringhe sensibili e ostacolare i sistemi di rilevamento statico automatizzato basati su firme testuali.
Riferimenti
- https://access.redhat.com/security/vulnerabilities/RHSB-2026-006
- https://www.wiz.io/blog/miasma-supply-chain-attack-targeting-redhat-npm-packages
- https://www.aikido.dev/blog/red-hat-npm-packages-compromised-credential-stealing-worm
- https://www.sonatype.com/blog/red-hat-cloud-services-npm-packages-hijacked
- https://linuxiac.com/red-hat-npm-packages-compromised-in-supply-chain-attack/
Change log
| Versione | Note | Data |
|---|---|---|
| 1.0 | Pubblicato il 03-06-2026 | 03/06/2026 |
Il presente articolo è un prodotto originale di csirt.gov.it, riproposto qui a solo scopo di aumentarne la visibilità. Può essere visualizzato in versione originale al seguente link
Ultimo aggiornamento
3 Giugno 2026, 16:39
CSIRT Toscana