Le 1er juin 2026, Wiz Research a identifié une nouvelle vague de compromissions supply chain ciblant le namespace npm @redhat-cloud-services. La campagne, baptisée Miasma, a injecté un malware voleur de credentials dans au moins 32 releases de paquets, cumulant environ 80 000 téléchargements hebdomadaires. Le code malveillant a été largement révoqué depuis, mais l'incident révèle à quel point les attaquants supply chain ont évolué.
Un Kit Outil Familier avec de Nouvelles Ruses
Le payload dérive du malware Mini Shai-Hulud, open-sourcé par l'acteur malveillant TeamPCP fin 2025. Les campagnes précédentes utilisant ce kit visaient Tanstack et d'autres paquets npm majeurs. Le variant Miasma apporte des modifications cosmétiques — références à l'univers de Dune remplacées par de la mythologie grecque ("spartan") — mais le craft sous-jacent reste substantiellement le même.
Ce qui change cette fois, c'est la portée du ciblage. Le malware collecte désormais explicitement les identités GCP et Azure, récupérant chaque identité cloud accessible depuis la machine infectée. Plutôt que d'extraire uniquement des secrets, les attaquants cherchent désormais à obtenir un accès direct aux environnements cloud eux-mêmes.
La deuxième évolution notable est le chiffrement par infection. Les variants Shai-Hulud précédents se répliquaient avec une variation minimale, facilitant le suivi par hash. Miasma génère un payload chiffré unique pour chaque infection, signifiant qu'un hash qui détecte une machine compromise ne détectera pas une autre.
Comment l'Attaque a Fonctionné
Les preuves indiquent qu'un compte GitHub d'un employé Red Hat a été compromis et utilisé pour poussée des commits isolés malveillants sur trois dépôts RedHatInsights :
RedHatInsights/frontend-componentsRedHatInsights/javascript-clientsRedHatInsights/platform-frontend-ai-toolkit
Ces commits introduisaient un workflow GitHub Actions minimal déclenché sur toute poussée vers n'importe quelle branche. Le workflow réclamait un token d'identité OIDC (id-token: write) et exécutait un payload obfuscated _index.js qui publiait les paquets directement sur npm — avec des attestations SLSA valides.
La provenance SLSA est censée vérifier qu'un paquet a été construit depuis un commit source spécifique par un builder de confiance. En générant des attestations valides, l'attaquant rendait les paquets malveillants indiscernables des vraies releases Red Hat, sapant un mécanisme clé de sécurité supply chain.
Portée des Dégâts
L'attaque a touché un large spectre de clients JavaScript Red Hat Cloud Services :
| Paquet | Versions compromises |
|---|---|
@redhat-cloud-services/topological-inventory-client | 3.0.10, 3.0.11, 3.0.13 |
@redhat-cloud-services/rbac-client | 9.0.3, 9.0.4, 9.0.6 |
@redhat-cloud-services/insights-client | 4.0.4, 4.0.5, 4.0.7 |
@redhat-cloud-services/frontend-components | 7.7.2, 7.7.3, 7.7.5 |
@redhat-cloud-services/notifications-client | 6.1.4, 6.1.5, 6.1.7 |
Une seconde vague est apparue le 4 juin, utilisant binding.gyp (fichier de configuration de build natif Node.js) pour exécuter du code malveillant pendant l'installation du paquet, cohérent avec la campagne Miasma.
Ce Que Cela Signifie pour l'Écosystème npm
L'attaque Miasma démontre une progression inquiétante dans la guerre supply chain npm. Trois points clés :
Les trusted publishers sont le maillon faible. La provenance SLSA, les tokens OIDC et les badges "vérifié" ont tous été contournés ici. Le modèle de sécurité suppose que les comptes GitHub et npm d'un éditeur sont sécurisés. Les deux ont été compromis.
Le malware open-source abaisse le seuil. TeamPCP a publié le code de Mini Shai-Hulud publiquement. Miasma n'est pas attribué avec certitude à TeamPCP — les similarités pourraient indiquer des acteurs copycat utilisant le même toolkit publicly available.
La détection devient plus difficile, pas plus facile. Chiffrement par infection, abus d'attestations SLSA et techniques living-off-the-land font que les défenses traditionnelles (scanning de paquets, IOCs par hash) sont de plus en plus insuffisantes.
Actions Recommandées
Les organisations utilisant les clients JavaScript Red Hat doivent :
- Auditer les versions de paquets affectées et passer aux releases corrigées
- Renouveler tous les secrets accessibles depuis les postes de développement — tokens GitHub, credentials cloud, secrets CI/CD
- Revoir l'activité GitHub pour des dépôts non autorisés, de nouveaux access tokens ou des exécutions de workflow suspectes
- Mettre en place de l'allowlisting de dépendances et l'imposer via
.npmrcou politique corporative - Générer des SBOM pour toutes les dépendances de production afin d'accélérer la réponse à incident
L'écosystème npm reste une cible de haute valeur. Miasma n'est pas un incident isolé — c'est la dernière itération d'une campagne escalada.