En bref

  • CVE-2026-45321 (CVSS 9.6) : 42 packages TanStack compromis sur npm (84 versions affectées) entre le 28 mai et le 10 juin 2026 — vol de tokens, clés SSH et secrets d'environnement
  • Projets ayant effectué un npm install incluant TanStack Query, Router, Table, Form ou Virtual dans cette fenêtre sont potentiellement compromis — des environnements OpenAI et Mistral AI ont été touchés
  • Action requise : auditer les dépendances, effectuer la rotation de tous les secrets CI/CD et développeurs, vérifier les IoC sur les postes exposés

Les faits

L'écosystème open source TanStack, l'une des librairies front-end React les plus populaires au monde avec plusieurs millions de téléchargements hebdomadaires, a été victime d'une attaque supply chain majeure référencée CVE-2026-45321 avec un score CVSS de 9.6. L'attaque, baptisée «Mini Shai-Hulud» par les chercheurs en sécurité — en référence au ver géant de Dune, vecteur souterrain et invisible — a compromis 42 packages npm distincts de l'écosystème TanStack, dans 84 versions distribuées via le registre npm officiel. L'information a été révélée par The Hacker News, qui cite les travaux de plusieurs équipes spécialisées en sécurité de la chaîne d'approvisionnement logicielle.

TanStack est le projet développé par Tanner Linsley regroupant plusieurs librairies React de référence : TanStack Query (anciennement React Query, gestion du state serveur), TanStack Router (routage React), TanStack Table (tableaux complexes), TanStack Form (formulaires) et TanStack Virtual (virtualisation de listes). Ces librairies équipent des centaines de milliers de projets web, de startups aux grandes entreprises. La popularité massive de cet écosystème en fait une cible de premier choix pour les attaquants : compromettre un seul package pivot permet d'atteindre en cascade un très grand nombre de projets en aval (downstream).

Le vecteur d'attaque initial pointe vers une compromission de compte npm (account takeover) d'un mainteneur de l'écosystème TanStack. Cette technique permet à l'attaquant de publier des versions malveillantes de packages légitimes sous l'identité d'un contributeur de confiance, sans déclencher d'alerte particulière dans les pipelines CI/CD. Les packages npm étant installés automatiquement via npm install, pnpm add ou yarn add, le code malveillant s'exécute directement sur les machines lors de l'installation, via les scripts d'installation (install hooks : preinstall, postinstall). Ces hooks sont conçus pour des opérations légitimes de compilation, mais constituent un vecteur d'exécution de code arbitraire redoutable en cas de compromission.

Le payload malveillant intégré dans les versions compromises présente plusieurs fonctionnalités : vol de tokens d'authentification stockés en variables d'environnement ou dans des fichiers .npmrc, .netrc et de configuration git, exfiltration de clés SSH présentes dans le répertoire ~/.ssh, reconnaissance réseau ciblant les instances cloud accessibles (métadonnées AWS IMDSv1/v2, GCP metadata, Azure IMDS), et persistance légère sur macOS via des modifications de fichiers de configuration shell (.zshrc, .bash_profile). Deux postes de développeurs d'OpenAI ont été directement compromis via des dépendances TanStack dans des projets internes, conduisant OpenAI à forcer une mise à jour des certificats de sécurité macOS le 12 juin 2026. Des environnements de Mistral AI et Guardrails AI ont également été identifiés comme exposés.

La timeline de l'incident est critique pour évaluer son périmètre. Les premières versions malveillantes auraient été publiées sur npm le 28 mai 2026, un vendredi — choix délibéré pour maximiser la fenêtre d'exposition sur un week-end où les équipes de sécurité sont réduites. La détection a eu lieu le 10 juin, lorsque des outils de scanning automatique de packages (Snyk, Socket Security, Phylum) ont identifié des comportements anormaux dans les scripts d'installation : requêtes réseau sortantes non documentées lors du npm install. Cette fenêtre d'exposition de treize jours signifie que tout npm install incluant des packages TanStack entre ces deux dates a exécuté du code malveillant sur le poste du développeur.

La réponse de l'équipe TanStack a été immédiate dès la confirmation : les versions malveillantes ont été dépubliées du registre npm, de nouvelles versions propres signées ont été publiées et le compte compromis a été sécurisé avec activation de la MFA obligatoire pour tous les mainteneurs. Une investigation forensique est en cours pour déterminer l'étendue complète et identifier si d'autres composants de l'infrastructure TanStack ont été touchés : GitHub Actions, pipelines de documentation, CDN de distribution des assets.

CVE-2026-45321 s'inscrit dans une tendance documentée depuis 2020 qui s'accélère : les attaques supply chain via npm sont en augmentation constante en fréquence et sophistication. Les incidents Event-Stream (2018), ua-parser-js (2021), colors.js (2022), xz-utils (2024) et maintenant TanStack (2026) constituent les jalons d'une menace qui a atteint une maturité industrielle. Pour une analyse des mesures de protection récentes, consultez notre article npm v12 et la désactivation par défaut des scripts d'installation — une mesure qui aurait significativement limité l'impact de cette attaque si elle avait été déployée plus tôt.

L'impact de cet incident dépasse largement TanStack. Le fait que des environnements d'OpenAI et Mistral AI aient été touchés illustre la nature systémique des attaques supply chain : un seul point de compromission dans la chaîne de dépendances peut contaminer des projets en apparence sans rapport direct. Les équipes de threat intelligence considèrent cet incident comme représentatif d'une évolution tactique des groupes APT qui privilégient de plus en plus les vecteurs d'attaque indirects sur la chaîne de développement logicielle, plutôt que l'exploitation frontale de systèmes d'entreprise mieux protégés.

Impact et exposition

Tout projet JavaScript ou TypeScript utilisant TanStack Query, Router, Table, Form ou Virtual et ayant mis à jour ses dépendances entre le 28 mai et le 10 juin 2026 doit être considéré comme potentiellement compromis. L'impact concret dépend du contexte : un environnement de développement avec accès à des secrets de production (clés API, tokens CI/CD, credentials AWS/GCP/Azure) présente un risque élevé. Les pipelines CI/CD qui effectuent des npm install avec des secrets injectés en variables d'environnement sont particulièrement à risque. Les bundles de production pré-compilés déployés sur CDN ne sont pas directement affectés par les install hooks, mais des artefacts compilés depuis des versions compromises peuvent contenir du code malveillant intégré dans le bundle final.

Recommandations

  • Audit des dépendances : Identifier tous les projets utilisant des packages TanStack (npm list | grep @tanstack) et vérifier les versions avec l'advisory officiel TanStack sur GitHub Security Advisories. Lancer npm audit pour détection automatique de CVE-2026-45321.
  • Rotation immédiate des secrets : Régénérer tous les secrets accessibles depuis les environnements exposés : tokens GitHub, clés AWS/GCP/Azure, secrets CI/CD, tokens npm, clés SSH. Considérer que tout secret présent en variable d'environnement sur des postes ayant effectué npm install dans la fenêtre est compromis.
  • Vérification des postes développeurs : Scanner les postes ayant installé des packages TanStack dans la fenêtre d'exposition pour détecter des indicateurs de compromission (IoC) : processus suspects, connexions réseau anormales, modifications de fichiers .bashrc, .zshrc ou .bash_profile.
  • Verrouillage des versions : Commiter les fichiers de lock (package-lock.json, yarn.lock) et utiliser des plages de versions strictes pour les dépendances critiques. Mettre en place une politique de revue des mises à jour avant intégration en CI.
  • Outils SCA : Intégrer des outils de Software Composition Analysis (Snyk, Socket Security, Dependabot) dans les pipelines CI/CD pour la détection automatique de packages compromis ou vulnérables lors des futurs builds.

Alerte critique

Si votre équipe a effectué des npm install incluant des packages TanStack entre le 28 mai et le 10 juin 2026 : considérez les secrets accessibles depuis ces environnements comme compromis et procédez à leur rotation immédiate. Ne pas agir expose à des mouvements latéraux potentiellement déjà en cours dans votre infrastructure cloud ou vos pipelines CI/CD.

Comment vérifier rapidement si nos projets utilisent des versions TanStack compromises ?

Dans chaque projet, exécutez npm list 2>/dev/null | grep @tanstack pour lister les dépendances installées. Comparez avec la liste des versions affectées dans l'advisory TanStack GitHub Security Advisories. npm audit --json remonte CVE-2026-45321 si les bases npm Advisory sont à jour. Pour un audit de vos repos Git en masse, Socket Security propose une intégration GitHub App qui analyse automatiquement l'ensemble de votre organisation et flag les packages présentant des comportements suspects dans leurs scripts d'installation, y compris rétrospectivement sur les commits passés.

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