Miasma, Red Hat, supply chain, npm, sécurité informatique, malware, GitHub Actions, Mini Shai-Hulud, jeton OIDC, open source

Miasma : une nouvelle vague d’attaques supply chain npm frappe Red Hat

Lundi 1er juin 2026. Il est 10h54 UTC. Dans l’obscurité des dépôts GitHub, quelqu’un vient de pousser silencieusement une modification dans un package npm officiel de Red Hat. Pas n’importe quel package, un composant utilisé dans la console hybride cloud de l’une des plus grandes entreprises de logiciels open source au monde. Une modification invisible à l’œil nu, dissimulée dans un script de pré-installation. Une charge qui s’exécute automatiquement dès qu’un développeur tape npm install.

Une heure plus tard, à 13h45, une deuxième vague. Puis une troisième à 14h23. Au total, 95 versions compromises. 32 packages officiels infectés. Et 116 991 téléchargements hebdomadaires potentiellement exposés. L’attaque porte un nom aussi poétique que menaçant : Miasma. Sous-titré « The Spreading Blight », la Corruption qui se propage.

Ce n’est pas une attaque parmi d’autres. C’est la suite directe et encore plus sophistiquée de Mini Shai-Hulud, le ver open source que le groupe TeamPCP avait publié sur GitHub il y a à peine trois semaines. Et ça soulève une question qui devrait tenir éveillé n’importe quel développeur : maintenant que les outils pour construire ce type d’attaque sont accessibles à tout le monde, où s’arrête la contamination ?

Rappel express : c’est quoi une attaque supply chain npm ?

Avant de plonger dans les détails de Miasma, posons les bases pour que tout le monde soit à bord y compris ceux qui ne sont pas développeurs.

npm (Node Package Manager) est le plus grand registre de packages JavaScript au monde. Quand un développeur crée une application web, il n’écrit pas tout le code depuis zéro. Il utilise des briques logicielles préexistantes, appelées packages ou bibliothèques, qu’il installe depuis npm avec une simple commande : npm install nom-du-package. C’est rapide, pratique, et c’est devenu le standard du développement web moderne.

Le problème, c’est que cette confiance implicite dans les packages publiés est précisément ce que les attaquants exploitent. Une attaque supply chain sur npm, c’est glisser du code malveillant à l’intérieur d’un package légitime, de sorte que quand un développeur l’installe, il installe aussi, sans le savoir, le malware avec.

Miasma va plus loin encore. L’attaque ne cible pas un package obscur ou un projet abandonné. Elle prend pour cible le compte officiel @redhat-cloud-services, les packages publiés et maintenus par Red Hat eux-mêmes, l’une des entreprises les plus respectées et les plus utilisées dans l’écosystème Linux et cloud d’entreprise.

📌  C’est quoi Red Hat ? Red Hat est une entreprise américaine fondée en 1993, rachetée par IBM en 2019 pour 34 milliards de dollars. Elle développe et maintient Red Hat Enterprise Linux (RHEL), l’une des distributions Linux les plus utilisées dans les serveurs d’entreprise et les environnements cloud. Ses packages npm servent des millions de développeurs qui construisent sur l’infrastructure cloud Red Hat.

Chronologie de l’attaque : une journée noire pour l’écosystème open source

Voici la reconstitution précise des événements du 1er juin 2026, établie à partir des analyses croisées de Wiz Research, Snyk, Orca Security et Phoenix Security.

Heure (UTC)Événement
13 Avril & 15 Mai, 2026Whiteintel détecte un identifiant et un cookie de session Red Hat dans des logs d’infostealers sur le dark web, signe que le compte d’un employé Red Hat est déjà compromis
29 mai 2026Premiers commits contenant la chaîne « Miasma: The Spreading Blight » détectés par OX Security : phase de test ou préparation
1er juin 2026, 10:54 UTC1ère vague : publication de packages malveillants sous @redhat-cloud-services via OIDC tokens volés dans le pipeline CI/CD de Red Hat
1er juin, ~11:30-12:00 UTCSocket et Aikido signalent les premières versions malveillantes environ 1h après leur publication
1er juin, ~13:00 UTCDivulgation publique ; la majorité des versions malveillantes sont révoquées par npm ; 2 versions restent actives
1er juin, 13:45 UTC2e vague : nouveaux commits malveillants, l’attaquant réagit à la révocation et continue
1er juin, ~14:00 UTCWiz publie l’analyse de la cause racine : compte employé compromis + exploitation OIDC
1er juin, 14:23 UTC3e vague : confirmée, portant le total à ~95 versions compromises sur 32 packages
2 juin 2026Red Hat publie l’avis de sécurité officiel RHSB-2026-006
2 juin 2026Nouvelles versions compromises découvertes dans des packages existants, ajoutées aux listes

🚨  Ce qui est frappant dans cette chronologie : l’attaquant a continué à publier des vagues après la détection initiale. Quand npm a révoqué les premières versions, il a simplement recommencé. Ce comportement en plusieurs vagues est caractéristique d’un acteur organisé et persistant.

Le point d’entrée : comment l’attaquant s’est glissé dans Red Hat

Voici la question que tout le monde se posait le 1er juin : comment des packages officiels de Red Hat ont-ils pu être compromis ? Red Hat a une équipe de sécurité sérieuse. Ses processus de publication sont normalement rigoureux. Qu’est-ce qui a failli ?

La réponse est à la fois simple et préoccupante : un compte GitHub d’un employé Red Hat a été compromis. Et à partir de là, tout le reste a découlé mécaniquement.

Étape 1 : Compromission du compte en amont

Des données de surveillance du dark web publiées par Whiteintel révèlent qu’un identifiant et un cookie de session appartenant à un employé Red Hat avaient été détectés dans des logs d’infostealers les 13 avril et 15 mai 2026. Cela signifie que le compte de cet employé avait probablement été infecté par un logiciel espion classique par exemple via un email de phishing ou un faux package installé sur sa machine personnelle.

Étape 2 : Contournement de la revue de code

Avec accès au compte GitHub de l’employé, l’attaquant a poussé directement des commits dits « orphelins » dans plusieurs dépôts Red Hat. Un commit orphelin, c’est un commit qui n’est rattaché à aucune branche principale, une technique qui permet de modifier un dépôt en contournant les processus habituels de revue de code par les pairs. Personne ne voit passer une pull request. Personne ne valide. Le code malveillant est là, silencieusement.

Étape 3 : Exploitation des tokens OIDC pour publier sur npm

C’est la partie la plus technique et la plus inquiétante. Les packages Red Hat utilisent GitHub Actions pour leur pipeline de publication automatisée quand un nouveau code est fusionné, GitHub Actions se charge de publier automatiquement la nouvelle version sur npm. Pour cela, il utilise des tokens OIDC (Open ID Connect), des jetons d’authentification éphémères générés par GitHub et valides uniquement pour la durée d’un workflow.

L’attaquant a inséré dans les workflows GitHub Actions un script qui intercepte ces tokens en lisant directement la mémoire du processus runner, la même technique documentée dans Mini Shai-Hulud. Avec ces tokens, il a pu publier ses propres versions malveillantes sur npm, signées avec des identifiants légitimes de Red Hat. Résultat : les packages malveillants portaient une signature cryptographique valide. Les outils de vérification d’intégrité standard ont vu des packages authentiques.

Ce que l’attaquant a injecté dans le workflow GitHub Actions :

  • Lecture de la mémoire du runner pour extraire les tokens OIDC
  • puis publication via : npm publish –access public
  • avec des attestations SLSA Build Level 3 forgées mais valides

💡  Pour les non-développeurs : imaginez que l’attaquant a réussi à voler le tampon officiel de Red Hat et à s’en servir pour apposer une signature « certifiée authentique » sur ses propres packages piégés. Tous les contrôles automatiques ont vu un cachet valide et ont laissé passer.

Le mécanisme du ver Miasma : Comment il s’exécute

Une fois le package malveillant publié, son fonctionnement est redoutablement simple à déclencher et très difficile à arrêter.

L’exécution automatique au moment de l’installation

Le code malveillant est inséré dans un script dit « preinstall », un script qui s’exécute automatiquement avant même que le package soit chargé dans votre projet. Cela signifie que vous n’avez pas besoin d’importer le package dans votre code, de l’utiliser, ou même de démarrer votre application. La seule commande npm install suffit à déclencher le malware. Immédiatement, silencieusement.

Architecture technique du payload

La charge utile de Miasma est construite sur le même framework que Mini Shai-Hulud, dont voici les caractéristiques techniques principales :

  • Obfuscation en 4 couches pour résister aux analyses statiques des scanners de sécurité.
  • Utilisation de Bun (un runtime JavaScript alternatif) pour exécuter le payload de manière plus discrète.
  • Staging du payload malveillant via le répertoire /tmp : espace temporaire rarement surveillé.
  • Extraction d’identifiants en mémoire via /proc/mem : contourne les protections de logs standard.
  • Propagation automatique : le ver énumère les dépôts GitHub auxquels le token volé a accès, lit les fichiers de workflow via l’API GraphQL, et publie de nouvelles versions infectées via la mutation createCommitOnBranch faisant apparaître ses commits comme des changements vérifiés et signés.
  • Persistance dans les configs IA : modification de .claude/settings.json pour survivre au nettoyage du package.
  • Chiffrement AES-128-GCM pour les communications exfiltrées.

La nouveauté de la deuxième vague

La deuxième vague de publications, détectée à 13h45 UTC, a introduit de nouveaux collecteurs spécifiques pour les identités Google Cloud Platform (GCP) et Microsoft Azure en plus des cibles AWS déjà présentes dans la première vague. Cela démontre une adaptation en temps réel : l’attaquant a observé les premières analyses publiées sur les réseaux sociaux et a enrichi son arsenal pendant que l’attaque était encore en cours.

Ce que Miasma vole exactement

La charge utile de Miasma est un aspirateur à secrets particulièrement vorace. Voici ce qu’elle cible, d’après les analyses techniques publiées par Snyk, Wiz, Orca Security et Phoenix Security :

CatégorieDonnées cibléesImpact potentiel
Cloud AWSClés IAM (~/.aws/credentials), tokens de session temporairesAccès total à l’infrastructure AWS de la victime
Cloud GCPClés de compte de service (.json), tokens gcloudDéploiements, accès aux données, coûts de calcul frauduleux
Cloud AzureIdentités de service, tokens Azure CLIAccès aux ressources Microsoft Azure
GitHubTokens d’accès personnels (PAT), secrets GitHub ActionsAccès aux dépôts privés, publication malveillante
npmTokens de publication npm (~/.npmrc)Publication de packages malveillants sous votre identité
SSHClés privées SSH (~/.ssh/)Accès aux serveurs, VPS, infrastructure DevOps
KubernetesFichiers kubeconfig (~/.kube/config)Contrôle de clusters Kubernetes en production
Outils IAFichiers config Claude Code, VS Code tasksPersistance post-nettoyage, compromission des sessions futures
Gestionnaires de secretsVariables d’environnement, HashiCorp Vault tokensAccès à tous les secrets d’application

🔴  Le danger multiplicateur : une fois en possession de votre token npm, le ver ne s’arrête pas à vous. Il scanne automatiquement tous les dépôts GitHub auxquels votre compte a accès et tente de publier des versions infectées dans d’autres packages dont vous êtes maintenant le vecteur involontaire.

Le lien avec Mini Shai-Hulud : quand l’open source devient une arme

Pour comprendre Miasma, il faut revenir en arrière de trois semaines. Le 12 mai 2026, le groupe de hackers TeamPCP publie sur GitHub le code source complet de son ver Mini Shai-Hulud, l’accompagnant de posts sur BreachForums encourageant explicitement des campagnes indépendantes.

En publiant leur code, TeamPCP transforme une attaque sophistiquée réservée à des acteurs bien dotés en un kit accessible à n’importe quel développeur malveillant avec un niveau technique modéré. Trois semaines plus tard, Miasma fait son apparition.

Les liens techniques entre les deux sont indéniables selon les chercheurs en sécurité :

  • Même structure de payload en quatre couches d’obfuscation.
  • Même usage de Bun comme runtime d’exécution.
  • Même technique d’extraction de mémoire via /proc/mem.
  • Même persistance via .claude/settings.json.
  • Même mécanisme de propagation auto-réplicante via les tokens npm volés.

Ce qui diffère, c’est le registre culturel. Là où Mini Shai-Hulud puisait dans l’univers de Dune pour ses références (les vers des sables de Frank Herbert), Miasma bascule vers la mythologie grecque « miasma » désignant dans la Grèce antique une pollution spirituelle contagieuse, une souillure qui se propage. Un choix de nom qui, au fond, décrit parfaitement ce que fait le malware.

🔍  Attribution : les chercheurs de Phoenix Security précisent qu’il est impossible de confirmer avec certitude que Miasma est directement l’œuvre de TeamPCP plutôt que d’un acteur indépendant ayant adapté leur code public. Le délai de trois semaines entre la publication du code source et l’attaque suggère qu’un groupe différent, peut-être moins expérimenté mais opportuniste, a étudié le framework et l’a amélioré pour cibler Red Hat.

Les autres victimes : Miasma n’est pas seul

Miasma n’est pas un incident isolé. Il s’inscrit dans une série d’attaques supply chain qui touchent l’écosystème open source depuis le début de l’année 2026. Voici le panorama des principales victimes documentées depuis mars 2026 :

Projet victimeDateMécanisme d’attaqueImpact
LiteLLM (PyPI)Mars 2026Identifiants du maintaineur compromisAspirateur de clés API IA (OpenAI, Anthropic…)
Mistral AI SDK (npm + PyPI)Avr.–Mai 2026OIDC pipeline compromisTokens d’accès Mistral exfiltrés
TanStack (npm)Mai 2026Cache poisoning GitHub Actions2 appareils d’employés OpenAI compromis
SAP CAP + mbt (npm)Mai 2026Backdoor Bun + credential stealerPersistance .claude/settings.json
Microsoft DurableTask (PyPI)19 mai 2026Compte GitHub maintainer hijackéSecrets CI/CD entreprise
@redhat-cloud-services (npm)1er juin 2026Compte employé + OIDC exploit117 000 dl/sem, 95 versions infectées

Ce panorama révèle une tendance inquiétante : les attaquants diversifient leurs vecteurs d’entrée (maintaineur compromis, OIDC exploit, cache poisoning, hijacking de compte employé) et s’adaptent rapidement aux contre-mesures déployées par les registres. La publication du code source de Mini Shai-Hulud a transformé ce qui était une technique de niche en une tactique quasi-industrielle.

Suis-je concerné ? Le guide de vérification

C’est la question la plus importante. Voici comment déterminer si vous êtes potentiellement exposé, et quoi faire si c’est le cas.

🔍 Vérification rapide : Êtes-vous dans la fenêtre d’exposition ?

Vous êtes potentiellement affecté si vous avez exécuté npm install sur un projet qui dépend d’un package @redhat-cloud-services entre le 1er juin 2026, 10:54 UTC et la révocation complète des versions malveillantes.

Pour vérifier si votre projet dépend de packages @redhat-cloud-services :

# Dans le répertoire de votre projet :

npm list | grep @redhat-cloud-services

# ou dans votre package.json / package-lock.json :

grep -r ‘redhat-cloud-services’ package*.json

Les packages les plus touchés incluent notamment @redhat-cloud-services/topological-inventory-client, @redhat-cloud-services/compliance-client, et @redhat-cloud-services/rbac-client. La liste complète est disponible sur le blog Wiz.

🚨 Actions immédiates si vous êtes exposé

  1. Révoquez et régénérez IMMÉDIATEMENT toutes vos clés AWS, GCP et Azure présentes sur les machines concernées.
  2. Changez tous vos tokens GitHub (Personal Access Tokens et tokens d’organisation).
  3. Régénérez vos tokens de publication npm (~/.npmrc).
  4. Vérifiez vos clés SSH : si elles étaient présentes dans ~/.ssh/ sur la machine infectée, considérez-les comme compromises.
  5. Inspectez .claude/settings.json dans vos dépôts et votre répertoire home, cherchez des entrées SessionStart suspectes.
  6. Auditez vos logs de pipeline CI/CD pour des publications non autorisées de packages.
  7. Vérifiez vos factures cloud pour des utilisations anormales des derniers jours.

🔴 Ne faites pas ces rotations par email ou Slack, si votre système est compromis, ces communications pourraient être interceptées. Utilisez un appareil de confiance non affecté pour révoquer et régénérer vos identifiants.

✅ Actions préventives pour l’avenir

  • Mettez à jour vers les versions saines des packages @redhat-cloud-services en vous référant à l’avis officiel RHSB-2026-006 de Red Hat.
  • Vérifiez et nettoyez vos fichiers .vscode/tasks.json pour des tâches runOn: folderOpen non attendues.
  • Activez les alertes de sécurité npm audit dans votre pipeline CI/CD.
  • Activez npm audit –audit-level=moderate dans vos scripts de build.

Comment mieux se protéger ?

Miasma soulève des questions fondamentales sur la confiance dans l’écosystème open source. Voici les mesures les plus efficaces pour limiter votre exposition à ce type d’attaques, classées par niveau de complexité.

🟢 Niveau débutant (à faire immédiatement, partout)

  • Verrouillez vos dépendances avec des hashes de contenu dans package-lock.json, cela empêche les mises à jour automatiques vers une version non vérifiée.
  • Activez npm audit dans votre pipeline CI/CD : npm le fait automatiquement lors des installations si configuré.
  • Ne stockez jamais d’identifiants cloud ou de tokens API directement dans votre environnement de développement sans gestionnaire de secrets.

🟡 Niveau intermédiaire (pour les équipes)

  • Auditez régulièrement vos GitHub Actions workflows pour la mauvaise configuration pull_request_target qui permet le cache poisoning.
  • Isolez les permissions CI/CD : chaque workflow ne doit avoir accès qu’aux secrets dont il a strictement besoin.
  • Utilisez des outils de composition logicielle (SCA) comme Snyk, Socket ou Dependabot pour surveiller vos dépendances en continu.
  • Intégrez .claude/settings.json et .vscode/tasks.json dans votre politique de surveillance d’intégrité des fichiers.

🔴 Niveau avancé (entreprises et projets critiques)

  • Déployez un miroir privé de vos dépendances npm avec Verdaccio ou JFrog Artifactory : vous contrôlez exactement quelles versions entrent dans vos pipelines.
  • Mettez en place une analyse comportementale des scripts preinstall avant exécution : des outils comme Socket.dev analysent le code des packages avant l’installation.
  • Considérez la politique de « délai de vérification » : n’utilisez jamais une version d’un package publiée il y a moins de 48 heures dans vos pipelines de production.

💡  Outil gratuit utile : Socket.dev propose une extension VS Code et une intégration GitHub qui analyse les packages npm en temps réel et vous alerte dès qu’un package présente des comportements suspects comme l’accès réseau lors de l’installation.

Le bilan de l’incident

IndicateurChiffre / Statut
Packages compromis32 packages dans @redhat-cloud-services
Versions malveillantes publiées~95 versions (3 vagues)
Téléchargements hebdo. combinés116 991 downloads/semaine
Fenêtre d’exposition1er juin 2026, 10:54 UTC → révocations progressives
Temps avant première détection~1 heure (Socket et Aikido)
Temps avant révocation~2 heures
Outils de détection ayant alertéSocket, Aikido, JFrog, Snyk, Wiz, Orca, Microsoft
Avis officiel Red HatRHSB-2026-006 (publié le 2 juin 2026)
Lien avec Mini Shai-HuludDérivé direct du code open sourcé le 12 mai 2026
Attribution confirméeNon, acteur utilisant l’outillage TeamPCP, identité inconnue

Le modèle de confiance de npm est fondé sur la réputation des mainteneurs. Miasma a compromis un compte employé Red Hat et a publié des packages avec des signatures cryptographiques valides. Est-ce que ce modèle de confiance est encore viable ? Faut-il repenser la façon dont on publie et consomme des packages open source ?

À propos Kamleu Noumi Emeric

Je suis un ingénieur en télécommunications et je suis le créateur du site tech-connect.info. J'ai une grande passion pour l'art, les hautes technologies, les jeux, les vidéos et le design. Aimant partager mes connaissances, Je suis également blogueur pendant mon temps libre. Vous pouvez me suivre sur ma page sociale Facebook.

Consultez également

Windows Defender suffit-il vraiment en 2026 La vérité sur les antivirus gratuits et payants

Windows Defender suffit-il vraiment en 2026 ? La vérité sur les antivirus gratuits et payants

Faut-il payer pour un logiciel antivirus ou utiliser l’antivirus intégré à Windows ? Points clés …

guest
0 Commentaires
Les plus récents
Les plus anciens Les plus votés
0
J'adorerais savoir ce que vous en pensez, S'il vous plaît laisser un commentaire.x