Mini Shai-Hulud : la campagne qui expose la fragilité de la chaîne d'approvisionnement open source dans npm, PyPI et GitHub Actions

Publié 5 min de lectura 47 lecture

La campagne connue sous le nom de Mini Shai-Hulud, attribuée à l'acteur TeamPCP, met à nouveau en évidence la fragilité de la chaîne d'approvisionnement open source : les paquets légitimes en npm et PyPI utilisés par des projets tels que TanStack, Mistral AI, OpenSearch et Guards AI ont été modifiés pour inclure un chargeur malveillant qui vole non seulement les identifiants, mais également tente de persister et de se propager comme véritable ver dans l'écosystème du paquet et CI / CD.

La chose la plus inquiétante dans cet incident est le niveau de sophistication technique et tactique. Les attaquants ont utilisé un fichier JavaScript affusé ("router _ init.js") pour façonner des environnements et lancer un braqueur d'identification capable de supprimer des secrets des fournisseurs de cloud, des portefeuilles de cryptomoneda, des outils IA, des systèmes de messagerie et de CI tels que GitHub Actions. En outre, pour éviter les filtres d'entreprise, ils ont exfiltré des données vers une infrastructure basée sur le protocole Session (domaine filev2.getsession [.] org) et, en tant que plan de sauvegarde, ils ont été téléchargés sur les dépôts GitHub en utilisant des jetons volés sous l'identité "claude @ users.noreply.github.com."

Mini Shai-Hulud : la campagne qui expose la fragilité de la chaîne d'approvisionnement open source dans npm, PyPI et GitHub Actions
Image générée avec IA.

Le vecteur d'entrée technique était une chaîne d'engagements dans les actions GitHub: utilisation du déclencheur Tirer _requête _ cible, Empoisonnement par Cache Action et extraction dans le temps de l'exécution des jetons OIDC du processus d'exécution. Cela a permis aux attaquants de publier des paquets malveillants à travers le pipeline de projet légitime avec des tests de provenance SLSA valides, une escalade rare et dangereuse qui attaque précisément la confiance que SLSA cherche à garantir. Plus d'informations sur la façon de durcir GitHub Actions est disponible dans la documentation officielle: https: / / docs.github.com / fr / actions / guides de sécurité / actions de sécurité-durcissement-pour-github et à propos de SLSA en https: / / slsa.dev /.

Le ver a également démontré sa capacité d'autoréplication : il a localisé des jetons de publication npm avec le drapeau contour _ 2fa = vrai, liste des paquets des mêmes mainteneurs et change les jetons OIDC en jetons par paquet pour éviter l'authentification traditionnelle. Le résultat a été la création et la diffusion de versions malveillantes avec SLSA Build Niveau 3 paraissant légitime. L'incident a reçu l'identificateur CVE-2026-45321 et une cote CVSS critique de 9,6, touchant des dizaines de paquets et de versions.

Les échantillons détectés comprennent des comportements extrêmes et du géofençage : L'analyse de Microsoft de l'échantillon Mistral décrit un téléchargement qui évite les environnements russophones et contient une branche destructive susceptible d'exécuter "rm -rf /" dans certains pays, tandis que le paquet de guarrailsai compromis a exécuté le code au moment de l'importation qu'il a téléchargé et exécuté un périphérique à distance sans vérification d'intégrité. Cela illustre non seulement la perte de secrets, mais aussi le risque réel de dommages irréversibles aux systèmes de production.

Pour les gestionnaires de projet touchés ou à risque, la réponse doit être immédiate et multiforme : révoquer et alterner tous les jetons de publication et OIDC, pour vérifier les logs de GitHub Actions à la recherche de fourches avec charges utiles, engagements et utilisations de comptes suspects (par exemple "claude @ users.noreply.github.com"), pour révoquer les identifiants avec bypass _ 2fa et pour désactiver ou restreindre l'utilisation de pull _ request _ cible dans les workflows qui effectuent des opérations sensibles. Il est crucial de vérifier les artefacts publiés et la chaîne d'approvisionnement : reconstruire, signer et vérifier les hachages et les signatures d'emballage avant de les accepter en production.

Les équipes de sécurité des organisations de consommateurs devraient identifier et atténuer les engagements des unités: Vérification des unités transitoires, bloque les versions compromises dans les gestionnaires (npm et PyPI), les environnements de développement de scanner et CI à la recherche de processus qui se connectent à des domaines suspects tels que filev2.getsession [.] org, api.masscan [.] cloud ou git-tanstack.com, et examine les machines de développement et les coureurs CI par des persistances dans les IDE (extensions / intégrations de VS Code et Claude Code) et des services tels que gh-token-monitor.

Mini Shai-Hulud : la campagne qui expose la fragilité de la chaîne d'approvisionnement open source dans npm, PyPI et GitHub Actions
Image générée avec IA.

Il y a plus d'incidences stratégiques : la campagne montre comment la confiance dans la construction de stations peut être manipulée si des flux de travail légitimes et des jetons OIDC sont exposés, de sorte que les organisations devraient appliquer le principe de moins de privilège aux identités d'IC, adopter des jetons à court terme, permettre des politiques d'accès conditionnel et revoir le modèle de confiance pour les fourchettes externes et les caches d'action. Les recommandations opérationnelles et de défense figurent dans le Guide d'action GitHub mentionné ci-dessus.

Du point de vue juridique et de la gouvernance, les gestionnaires devraient coordonner la divulgation responsable avec les dossiers de paquets (npm / PyPI), GitHub et, le cas échéant, les autorités réglementaires. Les consommateurs devraient suivre les instructions du projet et les dépôts de sûreté pour mettre à jour ou retirer les versions touchées, et consigner les preuves opérationnelles avant de nettoyer les environnements compromis.

Bref, cet incident n'est pas seulement un autre paquet malveillant : c'est un avertissement sur la façon dont la combinaison de l'automatisation CI, des jetons de grand privilège et des procédures de confiance peuvent être exploités pour introduire des logiciels malveillants qui se propage et persiste. L'atténuation nécessite des changements techniques (rotation des pouvoirs, restrictions sur les flux de travail, examen des permis), opérationnels (audits continus, détection des infiltrations) et culturels (moins de confiance implicite dans l'automatisation). Agir rapidement et coordonner avec les fournisseurs et la communauté est le seul moyen de limiter la portée et d'éviter de futures campagnes similaires.

Couverture

Autres

Plus de nouvelles sur le même sujet.