Le 11 mai 2026 à 19h20 UTC, TeamPCP publie 84 artifacts npm malveillants en six minutes dans l'écosystème TanStack via son pipeline CI/CD légitime. En cascade : 170+ packages contaminés, Grafana compromis, deux postes OpenAI infectés, 5 Go de code Mistral AI exfiltrés. Premier cas documenté de package npm malveillant portant une attestation SLSA valide.
En bref
- Le 11 mai 2026 à 19h20 UTC, TeamPCP publie 84 packages npm malveillants dans 42 packages @tanstack via le pipeline CI/CD légitime du projet — premier cas documenté de package npm malveillant avec attestation SLSA valide
- Bilan : 170+ packages npm et 2 packages PyPI compromis (TanStack, Mistral AI SDK, UiPath ×65, OpenSearch, Guardrails AI) ; victimes secondaires : Grafana Labs, OpenAI, Mistral AI
- Auditer les lockfiles pour toute version @tanstack installée le 11 mai entre 19h20 et 21h00 UTC et effectuer une rotation des credentials exposés dans ces environnements
Les faits
Le 11 mai 2026, entre 19h20 et 19h26 UTC, 84 artifacts npm malveillants ont été publiés sur npmjs.com en six minutes, répartis sur 42 packages du namespace @tanstack. TanStack est l'auteur de bibliothèques JavaScript fondamentales dans l'écosystème React : TanStack Query (anciennement React Query), TanStack Router, TanStack Table — des packages totalisant plusieurs centaines de millions de téléchargements mensuels. L'attaque est attribuée par StepSecurity au groupe TeamPCP, déjà responsable de la compromission des dépôts GitHub internes de GitHub via une extension VS Code poisonnée en mai 2026.
Ce qui distingue cette attaque de toutes les précédentes dans l'écosystème npm : les packages malveillants ont été publiés via le pipeline GitHub Actions légitime de TanStack, en utilisant l'identité OIDC (OpenID Connect) de confiance du projet. Les packages ont été signés avec les mêmes tokens et identités que les versions officielles. Plus troublant : selon StepSecurity, il s'agit du premier cas documenté d'un package npm malveillant portant une attestation SLSA (Supply chain Levels for Software Artifacts) valide, générée automatiquement par le workflow GitHub Actions compromis. SLSA est précisément l'un des mécanismes de confiance censés prévenir ce type d'attaque.
La contamination ne s'est pas limitée à TanStack. Dans la même fenêtre temporelle, le groupe a propagé l'attaque au SDK de Mistral AI sur npm et PyPI simultanément, aux 65 packages npm de l'outillage UiPath, à OpenSearch (1,3 million de téléchargements hebdomadaires npm) et à Guardrails AI sur PyPI. Selon l'analyse d'Orca Security, plus de 170 packages npm et 2 packages PyPI ont été compromis au total, représentant 404 versions malveillantes publiées en moins de 24 heures.
Le malware embarqué dans ces packages a été nommé Mini Shai-Hulud par les chercheurs de Rescana. Il s'agit d'un infostealer ciblant les environnements de développement et les pipelines CI/CD. Son objectif prioritaire : extraire les tokens d'authentification, les clés API, les identifiants de dépôts et les credentials GitHub stockés dans les environnements de build. Ce mode opératoire est cohérent avec l'objectif principal de TeamPCP : accumuler des accès à des dépôts de code source de haute valeur pour ensuite en négocier la revente ou exercer un chantage.
Grafana Labs a détecté la compromission de son environnement GitHub le 11 mai même. Le 16 mai, la société a reçu une demande d'extorsion qu'elle a refusé de payer. Le 19 mai, Grafana a confirmé que le périmètre se limitait à l'environnement GitHub interne (dépôts publics et privés, code source), sans impact sur les systèmes de production ni sur les données clients. OpenAI a subi la compromission de deux appareils d'employés, entraînant l'exfiltration de credentials depuis des dépôts de code source internes. Mistral AI a reçu une demande de rançon de 25 000 dollars pour 5 Go de code source interne.
La cinétique de l'attaque est édifiante : six minutes pour publier 84 packages malveillants via un pipeline compromis ; quelques heures pour que ces packages soient téléchargés par des pipelines CI/CD de production dans le monde entier ; une contamination en cascade vers Grafana, OpenAI et d'autres organisations dont les builds dépendaient des packages @tanstack ou des SDKs Mistral/UiPath. La détection par StepSecurity et Snyk est intervenue avant 21h00 UTC, permettant le retrait des versions malveillantes — mais des centaines d'organisations avaient déjà exécuté Mini Shai-Hulud dans leurs environnements.
Il est essentiel de situer cet incident dans la campagne globale de TeamPCP. La même semaine, le groupe avait utilisé l'extension VS Code « Nx Console » poisonnée pour compromettre 3 800 dépôts GitHub internes de GitHub. Les deux vecteurs — extension VS Code et packages npm — s'inscrivent dans une stratégie cohérente : cibler les outils de développement et les pipelines CI/CD plutôt que les périmètres réseau traditionnels. L'attaque TanStack représente la branche « supply chain de packages » de la campagne, là où l'attaque VS Code représentait la branche « outils d'IDE ».
À date, TeamPCP n'a pas été formellement attribué à un État. Les motivations identifiées sont principalement financières — revente de code source, rançons — mais la capacité à compromettre des pipelines CI/CD avec des identités OIDC légitimes et à générer des attestations SLSA valides suggère un niveau de sophistication cohérent avec un acteur bien financé.
Impact et exposition
Tout projet ayant installé une version @tanstack publiée le 11 mai 2026 entre 19h20 et 21h00 UTC doit être considéré comme potentiellement exposé. De même pour les projets dépendant du SDK Mistral AI, des packages UiPath npm ou d'OpenSearch npm dans ces tranches horaires. Les fichiers package-lock.json ou yarn.lock sont la source d'information la plus fiable pour déterminer si une version compromise a été installée.
Recommandations
- Audit des lockfiles : vérifier les versions @tanstack — les versions pré-11 mai et post-21h00 UTC du 11 mai sont saines ; les versions dans la fenêtre 19h20-21h00 UTC sont suspectes
- Rotation des credentials : si un build du 11 mai a exécuté des packages @tanstack ou Mistral AI SDK dans la fenêtre compromise, effectuer une rotation préventive de tous les tokens et clés API exposés
- Audit des accès GitHub : examiner les logs d'accès aux dépôts GitHub pour des activités suspectes dans les jours suivant le 11 mai
- Déployer un registre npm privé : envisager un proxy npm (Verdaccio, Nexus, Artifactory) avec une liste d'autorisation de packages approuvés pour les builds de production
- Analyser comportementalement les packages : des outils comme Socket.dev ou Phylum détectent les comportements suspects dans les packages npm au-delà des CVE connus
Comment savoir si mes builds ont exécuté des packages TanStack compromis ?
Consultez vos fichiers package-lock.json ou yarn.lock et comparez les versions @tanstack avec la liste des versions malveillantes publiée par StepSecurity et Snyk. Vérifiez vos logs CI/CD pour les runs du 11 mai 2026 entre 19h20 et 21h00 UTC. Si des packages suspects ont été exécutés, traitez tous les secrets présents dans ces environnements comme compromis et procédez à leur rotation.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits de sécurité ciblés pour identifier et corriger vos vulnérabilités avant qu'elles ne soient exploitées.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Articles connexes
CADA : l'UE présente sa loi de souveraineté cloud et IA
La Commission européenne présente ce 27 mai 2026 le Cloud and AI Development Act (CADA) pour définir le cloud souverain européen, tripler les data centres de l'UE et réduire la dépendance aux hyperscalers américains.
MuddyWater déploie Dindoor : espionnage iranien en 9 pays
Le groupe APT iranien MuddyWater déploie un nouveau backdoor Dindoor via Deno et une version améliorée de MiniJunk dans une campagne d'espionnage visant 9 organisations dans 9 pays, dont des secteurs de la défense et de l'aviation.
FBI : Silent Ransom Group cible les cabinets d'avocats
Le FBI alerte sur le Silent Ransom Group, qui combine vishing téléphonique et intrusions physiques sur site pour extorquer des données sensibles à des cabinets d'avocats américains, avec plus de 76 victimes identifiées.
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire