
🛡️ Scanner en une commande pour CVE-2026-45321 — attaque sur la chaîne d'approvisionnement TanStack npm
Scanner d'attaques de la chaîne d'approvisionnement en une commande pour CVE-2026-45321 / GHSA-g7cv-rxg3-hmpx
Détecte le ver « Mini Shai-Hulud » qui a compromis 42 packages npm @tanstack/* (84 versions malveillantes) le 11 mai 2026.
# Une ligne — analysez votre projet
curl -fsSL https://raw.githubusercontent.com/Caixa-git/tanstack-shield/main/tanstack-shield.sh | bash
# Analyser un répertoire spécifique
curl -fsSL https://raw.githubusercontent.com/Caixa-git/tanstack-shield/main/tanstack-shield.sh | bash -s -- /path/to/project
# Télécharger et utiliser directement
git clone https://github.com/Caixa-git/tanstack-shield.git
cd tanstack-shield
python3 tanstack-shield.py .
Le 11 mai 2026, un attaquant a enchaîné trois classes de vulnérabilités connues — mauvaise configuration de pull_request_target (Pwn Request), empoisonnement du cache GitHub Actions, et extraction de jetons OIDC en mémoire — pour publier 84 versions malveillantes dans 42 packages @tanstack/* sous l'identité npm de confiance de TanStack.
Le malware a récolté des identifiants (jetons GitHub, jetons npm, clés SSH, AWS/GCP/Kubernetes/Vault), les a exfiltrés via Session messenger, et s'est auto-propagé vers d'autres packages que la victime maintenait.
La même campagne a également touché Mistral AI (npm + PyPI), UiPath (65 packages), OpenSearch (1,3 million de téléchargements npm par semaine), et plus de 170 packages npm ainsi que 2 packages PyPI.
Scanner en lecture seule qui vérifie votre projet pour :
| Quoi | Fichiers | Résultat |
|---|---|---|
| Fichier de verrouillage npm | package-lock.json, npm-shrinkwrap.json | 🔴 Correspondance exacte de version malveillante |
| Fichier de verrouillage pnpm | pnpm-lock.yaml | 🔴 Correspondance exacte de version malveillante |
| Fichier de verrouillage yarn | yarn.lock | 🔴 Correspondance exacte de version malveillante |
| Dépendances du manifeste | package.json (racine + espaces de travail) | 🟡 Avertissement de présence de package |
| Empreinte du malware | @tanstack/setup dans optionalDependencies | 🔴 Malware confirmé |
| Dépendances git suspectes | github:tanstack/router#<commit> | 🔴 Malware confirmé |
| Scripts de cycle de vie | prepare avec bun + router_init | 🔴 Malware confirmé |
| node_modules | node_modules/@tanstack/* (solution de repli) | 🔴 Correspondance exacte de version |
Remarque : Les fichiers de verrouillage ne sont scannés qu'à la racine du projet. Si vous utilisez un monorepo avec des fichiers de verrouillage dans des sous-répertoires (par ex. packages/web/package-lock.json), exécutez le scanner dans chaque espace de travail, ou depuis la racine du monorepo où se trouve le fichier de verrouillage de premier niveau.
@tanstack/* trouvé dans package.json. Vérifiez votre fichier de verrouillage.⚠️ Crucial : ce malware est un VOLTEUR D'IDENTIFIANTS, pas un virus destructeur de PC. Si 🔴 est détecté :
curl -fsSL https://raw.githubusercontent.com/Caixa-git/tanstack-shield/main/tanstack-shield.sh | bash -s -- --json
Cet outil est en lecture seule. Il ne crée, ne modifie ni ne supprime jamais de fichiers sur votre système.
MIT