Postmortem: TanStack npm supply-chain compromise
Le 11 mai 2026 entre 19:20 et 19:26 UTC un attaquant a publié 84 versions malveillantes sur 42 packages @tanstack/* en combinant l'utilisation de pull_request_target, un empoisonnement du cache GitHub Actions et l'extraction mémoire d'un jeton OIDC. Le code malveillant s'exécute lors de npm/pnpm/yarn install en résolvant une optionalDependencies malveillante, en lançant un script prepare qui exécute un router_init.js obfusqué, collecte des identifiants (AWS, GCP, Kubernetes, Vault, .npmrc, tokens GitHub, clés SSH), exfiltre via le réseau Session/Oxen et se propage en republian des packages. Aucune preuve de vol de jetons npm n'a été trouvée et le workflow de publication npm en tant que tel n'a pas été compromis, mais toutes les versions affectées ont été dépréciées, npm security a été contacté pour retirer les tarballs et il est fortement recommandé de faire tourner les identifiants accessibles depuis un hôte ayant installé une version affectée le 11 mai 2026. La détection a été réalisée par un chercheur externe environ vingt minutes après la publication, les mainteneurs ont lancé une réponse (dépréciations, purge des caches, demande de retrait des tarballs, publication d'un avis de sécurité et fusion de corrections pour durcir les workflows) et un suivi est organisé via un issue et un advisory GitHub. L'incident montre que la chaîne d'attaques nécessite les trois failles simultanément et les mitigations proposées comprennent l'audit des workflows pull_request_target, le verrouillage des références d'actions, l'ajout de gardes repository_owner, la surveillance des publications et la révision des mécanismes de publication OIDC ou de recours à des tokens à courte durée et revue manuelle.