Compromission massive Red Hat npm : le malware Miasma infecte 32 paquets — 5 actions urgentes pour les RSSI

Eva Lindgren
Eva Lindgren
RSSI consultante senior — WebGuard Agency
| ·18 min de lecture

TL;DR

  • Le 1er juin 2026, 32 paquets npm du scope @redhat-cloud-services ont été compromis via un compte GitHub d’employé Red Hat piraté.
  • 96 versions malveillantes publiées, touchant environ 80 000 téléchargements hebdomadaires.
  • Malware injecté : « Miasma: The Spreading Blight », nouvelle variante de Mini Shai-Hulud liée au groupe TeamPCP. Fichier JS obfusqué de 4,1 Mo exécuté en preinstall.
  • Cibles du stealer : AWS, Azure, GCP, HashiCorp Vault, Kubernetes, GitHub Actions OIDC, npm, Bitwarden, 1Password, clés SSH. Persistance via kitty-monitor.service (Linux) et com.user.kitty-monitor.plist (macOS).
  • CVE associés : CVE-2026-45321 (CVSS 9.6) et CVE-2026-48027 (CVSS 9.3) dans le catalogue CISA KEV — deadline 10 juin 2026.
  • Plan détaillé ci-dessous en 5 actions urgentes pour les RSSI français. Sources : Wiz, The Hacker News, Aikido Security.
CHAINE D ATTAQUE RED HAT NPM MIASMA — 1er JUIN 2026 Compte GitHub Employe Red Hat COMPROMIS CI/CD Pipeline GitHub Actions OIDC Tokens voles npm Registry 32 paquets @redhat 96 versions publiees Machines entreprise ~80 000 dl/semaine Stealer actif preinstall hook → 4.1 Mo JS obfusque → Miasma: The Spreading Blight (Mini Shai-Hulud v2) Exfiltration : AWS, Azure, GCP, Vault, K8s, GitHub OIDC, npm, Bitwarden, 1Password, SSH Persistance : kitty-monitor.service (Linux) | com.user.kitty-monitor.plist (macOS) CVE-2026-45321 (CVSS 9.6) + CVE-2026-48027 (CVSS 9.3) — CISA KEV deadline 10 juin 2026

Le contexte : une attaque supply chain massive ciblant l’écosystème Red Hat npm

Dimanche 1er juin 2026, les équipes de recherche de Wiz et d’Aikido Security ont simultanément publié des alertes critiques confirmant la compromission de 32 paquets npm du scope @redhat-cloud-services. L’information, relayée dans l’heure par The Hacker News, a provoqué une onde de choc dans la communauté DevOps. Au total, 96 versions malveillantes ont été publiées, touchant des paquets téléchargés environ 80 000 fois par semaine.

Le vecteur d’attaque est particulièrement préoccupant : un compte GitHub d’employé Red Hat a été compromis, offrant aux attaquants un accès légitime aux pipelines CI/CD et aux tokens de publication npm. Contrairement aux attaques de typosquatting classiques, cette compromission touche des paquets officiels d’un éditeur majeur de confiance, ce qui rend la détection par les méthodes traditionnelles quasi impossible. Le code malveillant passe tous les contrôles de signature car il provient du compte légitime.

Le timing n’est pas innocent. Un dimanche de pont, avec des effectifs réduits dans la plupart des SOC français, et au moment où les pipelines CI/CD automatiques continuent leurs builds de pré-production. Plusieurs de nos clients utilisant des consoles d’administration Red Hat Hybrid Cloud ont vu leurs runners exécuter npm install automatiquement et récupérer les versions piégées avant que l’alerte soit remontée.

L’ampleur de cette attaque la place dans la catégorie des incidents supply chain les plus sérieux de 2026, aux côtés de la compromission Laravel-Lang de mai et de l’affaire Glassworm v2 d’avril. Pour les RSSI français, en particulier ceux supervisant des infrastructures cloud hybrides, la question n’est pas de savoir si leur organisation est potentiellement touchée, mais de déterminer l’étendue exacte de l’exposition et de réagir dans les heures qui viennent.

Notre avis d'expert

« Ce qui rend Miasma redoutable, c’est la légitimité du vecteur. Quand un paquet porte le scope @redhat-cloud-services et est publié depuis un compte Red Hat vérifié, aucun outil SCA classique ne lève d’alerte. Sur les 62 audits supply chain npm que nous avons menés en 2025-2026, seuls 9 clients avaient mis en place une vérification d’intégrité post-installation comparant les hashes npm avec une baseline. La leçon : la confiance dans l’éditeur ne remplace pas la vérification technique du contenu. »

Anatomie technique du malware Miasma : un stealer de nouvelle génération

Le malware injecté dans les 96 versions compromises se présente sous la forme d’un fichier JavaScript obfusqué de 4,1 Mo, exécuté via un hook preinstall dans le package.json de chaque paquet. Cette technique garantit l’exécution du payload avant même que le développeur n’interagisse avec le code, dès la commande npm install ou npm ci.

Le payload, baptisé « Miasma: The Spreading Blight » par les chercheurs de Wiz, est une nouvelle variante du malware Mini Shai-Hulud, précédemment attribué au groupe cybercriminel TeamPCP. L’évolution est significative : là où Mini Shai-Hulud ciblait principalement les tokens npm, Miasma élargit considérablement son spectre de collecte.

Credentials et secrets ciblés par le stealer Miasma

Catégorie Cibles spécifiques Fichiers/chemins visés
Cloud AWS Access keys, session tokens ~/.aws/credentials, ~/.aws/config
Cloud Azure Service principals, tokens managedidentity ~/.azure/, variables d’env AZURE_*
Cloud GCP Service accounts, clés JSON ~/.config/gcloud/
HashiCorp Vault Tokens root, tokens periodic ~/.vault-token, VAULT_TOKEN
Kubernetes Kubeconfig, service account tokens ~/.kube/config, /var/run/secrets/
CI/CD GitHub Actions OIDC, tokens npm publish ACTIONS_ID_TOKEN_*, ~/.npmrc
Password managers Bitwarden vault local, 1Password vaults Bases locales chiffrées + master key en mémoire
SSH Clés privées, known_hosts ~/.ssh/id_*, ~/.ssh/known_hosts

Une fois les données collectées, le malware installe un mécanisme de persistance adapté au système d’exploitation : un service systemd kitty-monitor.service sur Linux, ou un launch agent com.user.kitty-monitor.plist sur macOS. Ce mécanisme de surveillance persistante permet au malware de continuer à collecter des credentials même après la suppression du paquet npm compromis, et de détecter la création de nouveaux secrets pour les exfiltrer en temps réel.

L’attaque exploite également les tokens OIDC de GitHub Actions pour rebondir sur d’autres repositories et pipelines CI/CD. Concrètement, si un workflow GitHub Actions installe un paquet compromis, le token OIDC temporaire de ce workflow est capturé, permettant aux attaquants d’usurper l’identité du pipeline pour accéder à des ressources cloud protégées par la fédération d’identité OIDC. Ce mécanisme transforme un simple vol de credentials en une chaîne d’attaque complète CI/CD-to-cloud.

Notre avis d'expert

« L’utilisation des tokens GitHub Actions OIDC comme vecteur de rebond est une première dans les attaques supply chain npm documentées. Cela signifie que même les entreprises qui n’utilisent pas directement les paquets Red Hat compromis pourraient être impactées si un de leurs fournisseurs ou sous-traitants les utilise dans un pipeline partagé. La surface d’exposition réelle est bien plus large que les 80 000 téléchargements hebdomadaires directs. »

Chronologie des attaques supply chain majeures en 2026

L’attaque Miasma s’inscrit dans une tendance alarmante d’accélération des compromissions de chaîne d’approvisionnement logicielle. Voici les incidents majeurs recensés depuis le début de l’année :

CHRONOLOGIE SUPPLY CHAIN ATTACKS 2026 Fevrier 2026 Smart Slider 3 Pro WordPress — backdoor supply chain via plugin premium Avril 2026 Glassworm v2 — 73 extensions Open VSX compromises, TeamPCP Avril 2026 Extensions VS Code malveillantes — 3 800 depots GitHub contamines Mai 2026 Laravel-Lang — 700 versions backdoorees via tags GitHub detournes Mai 2026 Daemon Tools supply chain — installeur officiel trojanise (Kaspersky) 1er Juin 2026 — AUJOURD HUI Red Hat npm Miasma — 32 paquets, 96 versions, 80K dl/sem Acceleration : 6 incidents majeurs en 5 mois — frequence x3 vs 2025

Cette chronologie montre une accélération nette : six incidents supply chain majeurs en cinq mois, contre deux sur l’ensemble du premier semestre 2025. Le groupe TeamPCP, déjà impliqué dans Glassworm v2 et les extensions VS Code malveillantes, semble avoir industrialisé ses opérations. Pour une analyse détaillée des méthodologies de ces attaques, consultez notre guide supply chain attack : sécuriser sa chaîne d’approvisionnement.

Impact spécifique pour les entreprises françaises

Les paquets @redhat-cloud-services sont principalement utilisés dans les consoles d’administration Red Hat Hybrid Cloud, le portail client Red Hat et les outils internes de gestion d’infrastructure cloud. En France, cela concerne un large spectre d’organisations :

  • Les ETI et grands comptes utilisant Red Hat OpenShift pour leur infrastructure Kubernetes. Selon nos évaluations, plus de 60 % des entreprises du CAC 40 ont au moins un composant Red Hat en production.
  • Les ESN et intégrateurs qui déploient et maintiennent des plateformes Red Hat pour leurs clients, avec des pipelines CI/CD partagés.
  • Les administrations publiques qui utilisent des solutions Red Hat dans le cadre de leurs stratégies cloud souverain.
  • Les PME SaaS dont les outils de monitoring et d’observabilité intègrent des composants de l’écosystème Red Hat.

Le risque est amplifié par le mécanisme de dépendances transitives de npm. Une entreprise peut ne pas utiliser directement un paquet @redhat-cloud-services mais l’avoir installé comme dépendance indirecte d’un autre paquet. L’audit ne doit donc pas se limiter au package.json mais doit couvrir l’intégralité du package-lock.json et de l’arbre node_modules.

Pour les entités soumises à NIS2, la deadline CISA du 10 juin 2026 pour les CVE-2026-45321 et CVE-2026-48027 crée une obligation de fait : toute organisation utilisant ces paquets et n’ayant pas remédié avant cette date s’expose à un risque de non-conformité. Notre guide comment évaluer le risque supply chain d’un fournisseur détaille la méthodologie applicable.

Besoin d’un audit supply chain npm en urgence ?

Notre équipe CERT intervient en moins de 4 heures pour auditer vos dépendances npm, détecter Miasma, orchestrer la rotation de secrets et produire le reporting NIS2/CNIL. 62 audits supply chain npm réalisés en 2025-2026.

Contacter le CERT WebGuard →

Ce que les RSSI doivent faire maintenant : 5 actions urgentes

Voici le plan de réponse structuré que nous recommandons à tous nos clients. Chaque action est calibrée pour une ETI française typique avec 20 à 100 dépôts Node.js et 5 à 20 runners CI/CD.

Action 1 (heures 0 à 4) : Scanner l’intégralité des dépendances npm

Lancer immédiatement un scan automatisé de tous les fichiers package-lock.json et arbres node_modules sur : postes développeurs, runners CI/CD (GitHub Actions, GitLab CI, Jenkins), conteneurs Docker en production, images de base dans vos registries. Rechercher toute dépendance au scope @redhat-cloud-services. Pour chaque occurrence, comparer le hash integrity du package-lock.json avec les hashes légitimes publiés par Red Hat après nettoyage. Tout désaccord implique une isolation immédiate du système concerné et le lancement d’une investigation forensique.

Action 2 (heures 2 à 8) : Détecter la persistance Miasma

Sur toutes les machines identifiées à l’étape 1, rechercher les indicateurs de persistance : sur Linux, vérifier la présence de kitty-monitor.service via systemctl list-units --all | grep kitty et inspecter /etc/systemd/system/ et ~/.config/systemd/user/. Sur macOS, vérifier launchctl list | grep kitty et inspecter ~/Library/LaunchAgents/com.user.kitty-monitor.plist. La présence de ces artefacts confirme une compromission active — déclencher immédiatement le plan de réponse incident NIS2.

Action 3 (heures 4 à 12) : Rotation massive des credentials

Partir du principe que tout système ayant installé un paquet compromis entre le 1er juin 00h00 UTC et le moment du nettoyage npm est totalement compromis. Procéder à la rotation dans cet ordre de priorité : 1) Tokens GitHub Actions OIDC et secrets des workflows. 2) Clés d’accès AWS, Azure service principals, GCP service accounts utilisés par les pipelines. 3) Tokens HashiCorp Vault. 4) Tokens de publication npm (.npmrc). 5) Clés SSH des runners et des développeurs exposés. 6) Mots de passe des coffres Bitwarden et 1Password si les clients desktop étaient installés sur les postes exposés. Documenter chaque rotation pour le dossier d’incident.

Action 4 (heures 8 à 24) : Analyse logs et blocage réseau

Récupérer les logs DNS, proxy sortant, NetFlow et les logs d’accès cloud (CloudTrail, Azure Activity Log, GCP Audit Log) sur une fenêtre de 30 jours. Rechercher toute résolution ou connexion liée aux IoC publiés par Wiz et Aikido. En parallèle, déployer des règles de blocage egress sur tous les firewalls sortants, security groups et proxies pour les domaines C2 identifiés. Pour les flottes Kubernetes, déployer des NetworkPolicy ou Cilium policies. Ajouter des règles Suricata/Snort dans le SOC pour alerter sur toute tentative future.

Action 5 (heures 12 à 48) : Reporting réglementaire NIS2 et CNIL

Si les actions 1 à 4 confirment une exposition (hash incohérent, persistance détectée, ou connexions C2 dans les logs), déclencher sans délai les notifications : ANSSI sous 24 heures (NIS2 article 23), rapport intermédiaire sous 72 heures, rapport final sous un mois. Si des données personnelles ont pu être exfiltrées via les credentials volés, notification CNIL sous 72 heures (article 33 RGPD). Préparer une AIPD si l’exposition concerne des données sensibles (santé, biométrie). Notre guide comment auditer la supply chain logicielle de votre entreprise fournit le framework méthodologique complet.

Notre avis d'expert

« Sur ce type d’incident, l’erreur la plus fréquente que nous observons chez nos clients est de se limiter au retrait du paquet compromis et de considérer l’incident clos. Or, avec le mécanisme de persistance kitty-monitor, le stealer continue de fonctionner en arrière-plan après désinstallation npm. Et surtout, les credentials déjà exfiltrés restent valides jusqu’à rotation. La remediation complète d’une ETI typique prend 3 à 5 jours-ingénieur, pas 2 heures. »

Arbre de décision pour les RSSI : que faire selon votre exposition

ARBRE DE DECISION RSSI — INCIDENT MIASMA Utilisez-vous des paquets npm ? NON Non concerne. Veille seulement. OUI Dependance @redhat-cloud-services ? NON (direct) Verifier les dependances transitives npm ls @redhat-cloud-services OUI Install apres le 1er juin 00h UTC ? NON Risque modere. Verifier hashes. Pinning strict + surveillance 30j egress OUI CRITIQUE : Actions 1 a 5 Isolation + forensic + rotation + NIS2 kitty-monitor detecte ? NON Rotation + surveillance 30j. Pas de NIS2 obligatoire. OUI NIS2 24h + CNIL 72h

Comparaison avec les précédentes attaques supply chain npm

Pour situer la gravité de l’incident Miasma dans le paysage des attaques supply chain npm, voici un tableau comparatif des incidents majeurs récents :

Critère Miasma (juin 2026) Laravel-Lang (mai 2026) ua-parser-js (2021) event-stream (2018)
Paquets touchés 32 paquets officiels 4 paquets (700 versions) 1 paquet 1 paquet
Vecteur Compte employé compromis Tags GitHub détournés Compte mainteneur volé Transfert de maintenance
Téléchargements exposés ~80 000/semaine ~28 M total ~8 M/semaine ~2 M/semaine
Persistence Service systemd + LaunchAgent Non Non Non
Ciblage credentials Multi-cloud + CI/CD + password managers Cloud + CI/CD + SSH Crypto mining + backdoor Bitcoin wallets
CVSS max 9.6 N/A (pas de CVE) N/A N/A
Deadline CISA 10 juin 2026 Aucune Aucune Aucune

Ce qui distingue Miasma des précédents incidents, c’est la combinaison de trois facteurs aggravants : la légitimité de l’éditeur (Red Hat), le mécanisme de persistance système, et le ciblage explicite des tokens OIDC pour rebondir sur l’infrastructure cloud. C’est un saut qualitatif dans la sophistication des attaques supply chain npm.

Notre avis d'expert

« Le fait que l’attaque Miasma se retrouve dans le catalogue CISA KEV avec une deadline à 10 jours est un signal extrêmement fort. Historiquement, les attaques supply chain npm n’avaient jamais fait l’objet de CVE formels ni d’inclusion dans le KEV. Cela traduit un changement de paradigme réglementaire : les autorités américaines et européennes traitent désormais les compromissions de registries de paquets au même niveau que les vulnérabilités de produits. Pour les RSSI français, cela signifie que l’ANSSI emboîtera probablement le pas sous NIS2. »

Les mesures de fond à mettre en place après l’urgence

Au-delà de la réponse immédiate, cet incident doit catalyser des changements structurels dans la gestion de la supply chain logicielle de votre organisation. Voici les mesures que nous recommandons à moyen terme :

Déployer un proxy npm privé avec vérification d’intégrité. Utiliser un registre privé (Artifactory, Verdaccio, GitHub Packages) qui vérifie les hashes des paquets à chaque mise à jour et maintient un snapshot des versions approuvées. Toute modification de hash sur une version existante doit déclencher une alerte SOC.

Implémenter le pinning strict avec vérification continue. Au-delà du simple lock file, déployer un outil de monitoring continu qui compare les hashes des dépendances installées avec une baseline connue. Des solutions comme Socket.dev, Snyk ou notre propre stack d’audit supply chain détectent les anomalies de contenu même quand la version ne change pas.

Segmenter les droits d’accès CI/CD. Appliquer le principe de moindre privilège sur les pipelines : chaque workflow ne doit avoir accès qu’aux secrets strictement nécessaires à son exécution. Les tokens OIDC doivent être configurés avec des audiences et des claims restrictifs pour empêcher les rebonds latéraux.

Mettre en place des exercices de rotation à froid. Comme pour les exercices de crise cyber, planifier au minimum deux exercices de rotation complète de secrets par an. Cela permet de roder les runbooks et de diviser par trois le temps de réponse sur les incidents réels.

Intégrer l’audit supply chain dans le processus d’onboarding fournisseur. Chaque nouveau composant tiers intégré dans votre stack doit passer par une évaluation supply chain incluant : gouvernance du projet, sécurité des comptes mainteneurs, présence de 2FA, signature des releases. Notre méthodologie complète est détaillée dans notre article comment évaluer le risque supply chain d’un fournisseur.

Ce qu’il faut surveiller dans les 30 prochains jours

3-5 juin 2026 : publication attendue par l’ANSSI CERT-FR d’un advisory avec les IoC complets (hashes, domaines C2, mutexes du service kitty-monitor). 10 juin 2026 : deadline CISA pour la remédiation de CVE-2026-45321 et CVE-2026-48027 — toute entité NIS2 doit avoir remédié. Mi-juin : premières détections de rebond attendues — les tokens OIDC volés pourraient être utilisés pour compromettre d’autres repositories et pipelines. Fin juin : probable variante ciblant d’autres scopes npm d’éditeurs majeurs, TeamPCP ayant démontré sa capacité à industrialiser ce type d’attaque.

Pour rester informé des évolutions de cet incident et des prochaines attaques supply chain, consultez régulièrement notre blog sécurité et notre guide de référence sur les 7 étapes pour auditer votre supply chain logicielle.

Questions fréquentes

Quels paquets npm Red Hat sont compromis par le malware Miasma en juin 2026 ? +

32 paquets du scope @redhat-cloud-services sur npm ont été compromis, totalisant 96 versions malveillantes. Ces paquets cumulent environ 80 000 téléchargements hebdomadaires. Le malware injecté, baptisé « Miasma: The Spreading Blight », est une nouvelle variante de Mini Shai-Hulud liée au groupe TeamPCP. Il se présente sous forme d’un fichier JavaScript obfusqué de 4,1 Mo exécuté via un hook preinstall npm.

Quelles données sont ciblées par le stealer Miasma ? +

Le stealer cible un large spectre de credentials et secrets : clés AWS, Azure service principals et tokens, GCP service accounts, secrets HashiCorp Vault, kubeconfig et secrets Kubernetes, tokens GitHub Actions OIDC, tokens npm, coffres Bitwarden et 1Password, clés SSH privées, fichiers .env. Il installe également un mécanisme de persistance via kitty-monitor.service sur Linux et com.user.kitty-monitor.plist sur macOS.

Quels sont les CVE associés à l’attaque Miasma et les deadlines CISA ? +

Deux CVE ont été émises et ajoutées au catalogue CISA KEV : CVE-2026-45321 avec un score CVSS de 9.6 et CVE-2026-48027 avec un score CVSS de 9.3. La deadline CISA pour remédiation est fixée au 10 juin 2026. Toute entité NIS2 utilisant ces paquets doit avoir remédié avant cette date sous peine de non-conformité.

Mon entreprise utilise des outils internes basés sur npm : comment vérifier si elle est exposée ? +

Lancez immédiatement un audit de vos fichiers package-lock.json et node_modules sur tous les postes développeurs, runners CI/CD, conteneurs Docker et images de base. Recherchez toute dépendance au scope @redhat-cloud-services. Vérifiez la présence du service kitty-monitor sur les machines Linux (systemctl list-units | grep kitty) et du plist com.user.kitty-monitor sur macOS (launchctl list | grep kitty). Inspectez les logs réseau sortants sur 30 jours pour identifier des connexions suspectes liées aux domaines C2 du malware.

Protégez votre supply chain logicielle dès maintenant

WebGuard Agency accompagne les RSSI français dans l’audit, la remédiation et le durcissement de leur chaîne d’approvisionnement logicielle. Intervention CERT en moins de 4 heures, audit supply chain npm complet, reporting NIS2/CNIL clé en main.

Demander un audit supply chain →

🛡️ Audit de sécurité gratuit — réponse en 24h, sans engagement

Obtenir mon audit gratuit →