Compromission de la chaîne d'approvisionnement affectant les écosystèmes npm et PyPI
Une campagne de compromission de la chaîne d'approvisionnement ciblant les registres npm et PyPI permettrait à un acteur malveillant d'exécuter du code arbitraire lors de l'installation de dépendances, de voler des secrets d'infrastructure et de propager automatiquement un ver (logiciel malveillant) vers d'autres paquets logiciels.
Description
Contexte technique et détails de la vulnérabilité
npm est le gestionnaire de paquets par défaut de Node.js. Il permet d'installer et de gérer des bibliothèques essentielles comme TanStack, une suite dédiée à la gestion d'état et à la manipulation de données dans les écosystèmes React et JavaScript. PyPI est le dépôt officiel de logiciels et bibliothèques tiers pour le langage Python : c'est là que les développeurs Python publient et trouvent des modules destinés à des usages variés (analyse de données, intelligence artificielle, automatisation). Le 11 mai 2026, un acteur malveillant identifié sous le pseudonyme TeamPCP a publié 42 paquets npm malveillants répartis sur 84 versions de l'espace @tanstack/. Cette publication a été rendue possible par la combinaison de trois techniques : l'exploitation de vulnérabilités « Pwn Request » via pull_request_target, l'empoisonnement du cache GitHub Actions et l'extraction d'un jeton OIDC en mémoire. Les versions compromises intègrent deux vecteurs d'infection distincts. D'une part, un champ optionalDependencies ajouté au fichier package.json des paquets affectés déclenche automatiquement l'exécution d'une charge malveillante via l'exécuteur Bun lors de l'installation. D'autre part, les paquets contiennent un fichier fortement obscurci nommé router_init.js, qui agit comme agent de collecte de données et comme ver auto-propagateur. La propagation du ver a touché d'autres paquets npm, comme opensearch-project/opensearch et uipath, ainsi que les paquets PyPI mistralai et guardrails-ai. Cette compromission permettrait à un acteur malveillant d'exécuter du code arbitraire à distance, de voler les identifiants de services cloud et de compromettre durablement l'intégrité des environnements affectés.
Impact & Risques potentiels
Conséquences potentielles en cas d'exploitation
- Exécution de code à distance ;
- Atteinte à la confidentialité des données (clés API, secrets, variables d'environnement) ;
- Atteinte à l'intégrité des systèmes et de la chaîne de déploiement.
Systèmes affectés
Produits, composants et versions concernés
- Les paquets PyPI compromis guardrails-ai@0.10.1 et mistralai@2.4.6 ;
- Les paquets npm @tanstack/* et autres paquets compromis (liste exhaustive dans les deux dernières références) ;
- Tout système (poste de développement, serveur CI/CD, environnement de production) ayant exécuté npm install, pnpm install, yarn install ou pip install sur l'une des versions listées le 11 mai 2026 est considéré comme potentiellement compromis.
Mesures & Remédiations recommandées
Actions immédiates et correctifs recommandés
- Vérifier et purger les fichiers de verrouillage (package-lock.json, yarn.lock ou pnpm-lock.yaml) afin d'identifier les versions compromises ;
- Rechercher et arrêter le processus gh-token-monitor avant de révoquer les jetons GitHub ;
- Forcer la mise à jour ou le retour à des versions saines et vérifiées des bibliothèques concernées ;
- Réinitialiser immédiatement l'ensemble des clés API, secrets et identifiants présents dans les variables d'environnement des systèmes ayant installé les paquets malveillants ;
- Inspecter les dossiers .claude/ et .vscode/ à la recherche de fichiers suspects comme router_runtime.js, utilisés pour la persistance ;
- Bloquer les indicateurs de compromission réseau présentés dans la section correspondante.
INDICATEURS DE COMPROMISSION :
- hxxp://filev2[.]getsession[.]org/file/
- git-tanstack[.]com
- seed1[.]getsession[.]org, seed2[.]getsession[.]org, seed3[.]getsession[.]org
- 83[.]142.209[.]194
- git-tanstack[.]com/tmp/transformers.pyz
- Processus malveillant : gh-token-monitor (~/Library/LaunchAgents/com.user.gh-token-monitor.plist sur macOS ou ~/.config/systemd/user/gh-token-monitor.service sur Linux)
- Paquets npm et PyPI identifiés comme altérés : voir la liste actualisée dans les deux dernières références
- Autre indicateur : champ optionalDependencies ajouté au fichier package.json sous la forme « optionalDependencies »: { « @tanstack/setup »: « github:tanstack/router#79ac49eedf774dd4b0cfa308722bc463cfe5885c » }
Sources & Liens externes
Avis constructeurs et bulletins de référence
- https://tanstack.com/blog/npm-supply-chain-compromise-postmortem
- https://github.com/mistralai/client-ts/security/advisories/GHSA-jgg6-4rpr-wfh7
- https://github.com/guardrails-ai/guardrails/issues/1473
- https://socket.dev/blog/tanstack-npm-packages-compromised-mini-shai-hulud-supply-chain-attack
- https://www.wiz.io/blog/mini-shai-hulud-strikes-again-tanstack-more-npm-packages-compromised
Fiche Technique
Cellule d'Urgence CSIRT
Votre infrastructure est-elle affectée ou suspectez-vous un incident ? Nos experts sont mobilisables pour intervenir.
Signaler un incidentRecevez nos alertes par email
Abonnez-vous pour recevoir nos bulletins d'alerte de sécurité et les actualités d'Iservices directement dans votre boîte mail.