CanisterSprawl : le ver npm auto-propagant qui détourne vos tokens pour empoisonner l'écosystème
Un ver npm baptisé CanisterSprawl infecte les environnements développeurs via des postinstall hooks, vole les tokens npm des victimes et publie automatiquement des versions empoisonnées de leurs propres paquets — 16+ packages compromis détectés.
Contexte
Détecté et nommé par les équipes de Socket et StepSecurity, CanisterSprawl est le ver de chaîne d'approvisionnement npm le plus sophistiqué documenté à ce jour. Publié en plusieurs vagues depuis fin mars 2026, il a connu une accélération notable autour du 22 avril avec la découverte de 16+ paquets compromis appartenant à Namastex Labs. Contrairement aux attaques de type typosquatting ou package hijacking classique, CanisterSprawl ne nécessite pas d'accès direct aux comptes des victimes : une seule infection d'un développeur suffit à déclencher une propagation entièrement automatisée.
Son nom vient de son infrastructure de commande et contrôle : il utilise un canister de l'Internet Computer Protocol (ICP) pour exfiltrer les données volées, un choix délibéré pour résister aux blocages DNS et IP traditionnels.
Points clés
-
Vecteur initial : le malware se déclenche via un hook
postinstalldans lepackage.jsonde paquets compromis. Lors d'un simplenpm install, le hook s'exécute silencieusement dans l'environnement du développeur. -
Vol de secrets massif : CanisterSprawl scanne le système via des patterns regex et extrait ~40 catégories de secrets : tokens npm, clés API cloud (AWS, GCP, Azure), clés API de plateformes IA (Anthropic, OpenAI), tokens CI/CD (GitHub Actions, CircleCI, GitLab), clés SSH, wallets crypto, mots de passe stockés dans les navigateurs Chromium.
-
Propagation autonome : après avoir volé les tokens npm de la victime, le ver utilise ces accès pour publier de nouvelles versions empoisonnées de tous les paquets npm que la victime peut publier. Chaque nouveau paquet empoisonné contient lui-même le hook malveillant, relançant le cycle pour les utilisateurs suivants.
-
Infrastructure C2 résiliente : les données exfiltrées transitent vers un canister ICP, une application décentralisée difficile à couper ou tracer par les méthodes conventionnelles de takedown.
-
Paquets compromis identifiés : au moment de la divulgation, les paquets
@automagik/genie,@fairwords/loopback-connector-es,@fairwords/websocket,@openwebconcept/design-tokens,@openwebconcept/theme-owcetpgservefiguraient parmi les 16+ packages contaminés. Tous ont depuis été retirés du registre npm.
Vérifier et se protéger
# Vérifier si des packages suspects ont été publiés depuis votre compte
npm access ls-packages
# Révoquer et régénérer son token npm
npm token revoke <old-token>
npm token create
# Auditer ses postinstall hooks avant installation
npm install --ignore-scripts # désactive les hooks
Si vous suspectez une compromission : révoquez immédiatement votre token npm, contrôlez les versions publiées récemment sur votre registre, changez toutes les clés API accessibles depuis votre machine de développement, et vérifiez l'historique des workflows GitHub Actions associés.
Limite et portée réelle
Socket précise que l'essentiel des dégâts touche les développeurs qui installent des paquets dans des environnements dotés d'un token npm avec droits de publication. Les pipelines CI/CD qui utilisent des tokens en lecture seule (read-only) sont moins exposés à la propagation — mais leurs secrets restent à risque si le hook s'exécute.
Un second point de vigilance : la campagne Asurion documentée en parallèle (avril 1-8) a été revendiquée comme un exercice red team interne. L'existence de ce genre de "couverture" complique l'attribution et rappelle que la frontière entre test et attaque réelle reste floue dans l'écosystème npm.
The Hacker News — CanisterSprawl · Cloud Security Alliance Research Note · BleepingComputer