La société de sécurité StepSecurity a révélé le 1er juin que des attaquants avaient implanté une porte dérobée dans la portée de publication npm officielle @redhat-cloud-services de Red Hat. Les paquets compromis concernent au moins 32 paquets, avec environ 64 à 95 versions distinctes, et ces paquets comptaient environ 117 000 téléchargements par semaine. Ce logiciel malveillant est une variante dérivée du framework de collecte de credentials Shai-Hulud, publié publiquement le 12 mai, et a été baptisé « Miasma ». Il s’exécute immédiatement via le hook preinstall lorsque le développeur lance npm install, sans nécessiter l’exécution d’aucun code applicatif. Le script d’installation pèse 4,2 Mo (normalement quelques Ko seulement pour ce type de fichier) et contient trois niveaux d’obfuscation. Une fois exécuté, il lit la mémoire brute des processus de construction (contournant ainsi la protection contre les fuites de journaux) pour analyser et voler les clés GitHub Actions, les jetons d’accès AWS/GCP/Azure/Kubernetes/HashiCorp Vault/npm/CircleCI. La liste des paquets compromis inclut @redhat-cloud-services/chrome v2.3.1, @redhat-cloud-services/frontend-components v7.7.2, etc.
Miasma possède une capacité d’auto-réplication : après avoir volé un jeton de publication npm, il utilise la propriété publishConfig pour contourner la vérification d’authentification à deux facteurs, pousse de nouvelles versions vérolées vers d’autres paquets accessibles via le compte compromis, et se propage le long de l’arbre des dépendances. Le code malveillant détecte et évite également explicitement les outils de sécurité CrowdStrike, SentinelOne, Carbon Black et StepSecurity Harden-Runner, et ignore les environnements système en russe. Les attaquants n’ont pas volé les identifiants de connexion, mais ont exploité une faille structurelle dans le processus de publication de confiance des npm GitHub Actions OIDC — il suffit d’avoir les droits de poussée sur le dépôt cible et de pouvoir modifier les fichiers workflow pour l’infiltration. Le point d’entrée précis n’a pas encore été confirmé. Red Hat a confirmé avoir retiré les paquets concernés du registre npm et a indiqué que « ces paquets étaient strictement limités aux outils de développement internes, et que le code malveillant n’a jamais été exécuté dans aucun produit ou service Red Hat. » Il est à noter que le framework Shai-Hulud sur lequel repose Miasma n’a été rendu public que 20 jours avant l’attaque (le 12 mai), ce qui montre que les outils offensifs de nouvelle génération sont extrêmement rapidement transformés en armes.