đïž Contexte Le 11 mai 2026, Wiz publie une analyse technique dĂ©taillant une attaque coordonnĂ©e de supply chain menĂ©e par le groupe TeamPCP contre les Ă©cosystĂšmes npm et PyPI. Cette campagne, dĂ©signĂ©e Mini Shai-Hulud, reprĂ©sente une Ă©volution des opĂ©rations prĂ©cĂ©dentes du mĂȘme acteur (SAP, Checkmarx, Bitwarden, Lightning, Intercom, Trivy).
đŻ Packages compromis Les namespaces et packages impactĂ©s incluent :
@tanstack : dont @tanstack/react-router (~12 millions de tĂ©lĂ©chargements hebdomadaires) @uipath : outils dâautomatisation enterprise (apollo-core, CLI, agent SDKs) @mistralai/mistralai : client TypeScript officiel de Mistral AI guardrails-ai (PyPI) : package Python de guardrails LLM mistralai (PyPI) Plusieurs dizaines dâautres packages npm (voir liste complĂšte) đ Vecteur dâinfection TanStack (chaĂźne de 3 vulnĂ©rabilitĂ©s GitHub Actions) Lâattaquant crĂ©e un fork renommĂ© du dĂ©pĂŽt TanStack/router (zblgg/configuration) pour Ă©chapper aux recherches de forks Ouverture dâune pull request dĂ©clenchant un workflow pull_request_target qui exĂ©cute le code du fork et empoisonne le cache GitHub Actions (pnpm store) Lors de la fusion de PRs lĂ©gitimes, le workflow de release restaure le cache empoisonnĂ© ; des binaires contrĂŽlĂ©s par lâattaquant extraient des tokens OIDC directement depuis la mĂ©moire du runner (/proc/<pid>/mem) Publication de versions malveillantes sans vol de credentials npm đ Vecteurs dâinfection dans les packages @tanstack : entrĂ©e optionalDependencies pointant vers un commit orphelin + fichier obfusquĂ© router_init.js (~2,3 Mo) dans le tarball @uipath : script preinstall (node setup.mjs) tĂ©lĂ©chargeant le runtime Bun pour exĂ©cuter le payload â mĂȘme mĂ©canisme que le compromis SAP prĂ©cĂ©dent PyPI : 13 lignes de code tĂ©lĂ©chargeant et exĂ©cutant git-tanstack[.]com/tmp/transformers.pyz đ Comportement du payload Le payload est un credential stealer auto-propagant (worm) ciblant :
...