Une attaque de la chaîne d'approvisionnement nommée TrapDoor, présente sur npm, PyPI et Crates.io, vole les clés des portefeuilles crypto et empoisonne les assistants de codage IA avec des instructions Unicode cachées.

Marcus Webb
Responsable Recherche DeFi

Une campagne coordonnée de la chaîne d'approvisionnement appelée TrapDoor a compromis 34 packages sur npm, PyPI et Crates.io, ciblant spécifiquement les développeurs crypto. Le logiciel malveillant dérobe les clés privées de portefeuille, les identifiants SSH et les jetons AWS, et introduit un nouveau vecteur d'attaque qui empoisonne les assistants de codage IA via des instructions Unicode invisibles.
On May 24, 2026, security researchers at Socket disclosed a coordinated supply chain campaign spanning three major package registries. The earliest malicious package had appeared two days earlier, on May 22. Dubbed TrapDoor, the attack distributed 34 malicious packages across more than 384 versions, all designed to harvest credentials from crypto, DeFi, and AI developers.
Ce n'est pas la première attaque de la chaîne d'approvisionnement visant la crypto. L'incident event-stream en 2018 a compromis des portefeuilles Copay Bitcoin, et le détournement de ua-parser-js en 2021 a déployé des cryptominers sur des millions de machines. Mais TrapDoor représente une évolution, c'est la première campagne inter-écosystèmes majeure à instrumentaliser les assistants de codage IA comme vecteur d'attaque.
L'attaque exploite des chemins d'exécution spécifiques à chaque écosystème qui se déclenchent pendant les flux de travail de développement courants.
npm packages utilisent des hooks postinstall qui s'exécutent automatiquement lors de npm install. Le payload partagé, un fichier de 1 149 lignes appelé trap-core.js, scanne le système de fichiers local pour trouver des clés SSH, des identifiants AWS, des jetons GitHub, des données de navigateur et des données d'extensions de portefeuilles crypto provenant de MetaMask, Phantom et d'autres portefeuilles. Contrairement aux voleurs d'identifiants classiques, TrapDoor valide les informations récoltées auprès d'API en ligne avant de les exfiltrer, améliorant ainsi le rapport signal/bruit de l'attaquant.
PyPI packages s'exécutent à l'import, en téléchargeant un payload JavaScript depuis un domaine GitHub Pages contrôlé par l'attaquant. Cette technique inter-langages permet à l'attaquant de mettre à jour le payload à distance sans republier le package Python.
Crates.io packages intègrent des scripts build.rs malveillants qui s'exécutent lors de cargo build, ciblant spécifiquement les keystores des développeurs Sui et Move. Les données volées sont chiffrées avec une clé XOR codée en dur et exfiltrées vers des Gists GitHub.
Si vous avez installé l'un des packages listés ci-dessous, faites immédiatement tourner toutes vos clés et identifiants, et déplacez vos fonds crypto vers un nouveau portefeuille. Les clés compromises peuvent être exploitées longtemps après la suppression du package malveillant.
Les packages se font passer pour des utilitaires de développement légitimes. Des noms comme solidity-deploy-guard, defi-threat-scanner et wallet-security-checker sont conçus pour séduire directement les développeurs crypto soucieux de sécurité.
npm (21 packages): async-pipeline-builder, build-scripts-utils, chain-key-validator, crypto-credential-scanner, defi-env-auditor, defi-threat-scanner, deployment-key-auditor, dev-env-bootstrapper, eth-wallet-sentinel, llm-context-compressor, mnemonic-safety-check, model-switch-router, node-setup-helpers, project-init-tools, prompt-engineering-toolkit, solidity-deploy-guard, token-usage-tracker, wallet-backup-verifier, wallet-security-checker, web3-secrets-detector, workspace-config-loader
PyPI (7 packages): cryptowallet-safety, data-pipeline-check, defi-risk-scanner, env-loader-cli, eth-security-auditor, git-config-sync, solidity-build-guard
Crates.io (6 packages): move-analyzer-build, move-compiler-tools, move-project-builder, sui-framework-helpers, sui-move-build-helper, sui-sdk-build-utils
Ce qui rend TrapDoor sans précédent, c'est son ciblage des assistants de codage IA. Le logiciel malveillant place des fichiers .cursorrules et CLAUDE.md dans les répertoires de projet - des fichiers de configuration standard que des outils comme Claude Code et Cursor lisent comme contexte de projet.
Cachées dans ces fichiers, des instructions sont encodées à l'aide de caractères Unicode à largeur nulle (U+200B, U+200C, U+200D, U+FEFF). Ces caractères sont invisibles dans les éditeurs de texte, les IDE et même dans l'interface de revue de code de GitHub. Un développeur qui consulte le fichier ne voit que la documentation normale du projet.
Les instructions cachées ordonnent à l'assistant IA d'exécuter un "scan de sécurité obligatoire" chaque fois que le développeur demande de l'aide pour coder. Ce "scan" est en réalité un pipeline d'extraction d'identifiants qui envoie les variables d'environnement, les clés SSH et les données de portefeuille vers l'infrastructure de l'attaquant.
Les attaquants ont également soumis des pull requests à de grands projets open source liés à l'IA, notamment browser-use/browser-use, langchain-ai/langchain, langflow-ai/langflow, run-llama/llama_index, FoundationAgents/MetaGPT et OpenHands/OpenHands. Chaque PR comportait des titres bénins comme "docs: add .cursorrules with dev standards" tout en embarquant le marqueur de campagne P-2024-001. Si ces PR étaient fusionnées, chaque développeur ouvrant ces dépôts avec un outil d'assistance IA deviendrait une cible.
Cela représente un changement de paradigme. Les attaques précédentes de la chaîne d'approvisionnement ciblaient la chaîne d'exécution du code. TrapDoor cible la couche d'interaction humain-IA, une surface d'attaque que les outils traditionnels d'analyse de dépendances ne peuvent pas détecter.
Au-delà du vol initial d'identifiants, TrapDoor établit sept mécanismes de persistance sur les machines compromises :
.cursorrules et CLAUDE.md empoisonnés.bashrc, .zshrc)authorized_keysLa capacité de mouvement latéral est particulièrement préoccupante. Une seule machine développeur compromise peut se propager en cascade dans l'infrastructure CI/CD, les serveurs de déploiement et les postes de travail des collègues via la réutilisation de clés SSH.
Les implications pour la sécurité des protocoles DeFi s'étendent bien au-delà des développeurs individuels. Une machine développeur compromise donne accès aux clés privées de déploiement, aux clés multisig d'admin, aux secrets des pipelines CI/CD, aux clés de validateurs de pont et aux clés de signature d'oracle.
Des incidents récents valident ce modèle de menace. L'exploitation Resolv en mars 2026 (23 millions de dollars perdus) provient d'une défaillance d'infrastructure off-chain, pas d'un bug de contrat intelligent. L'incident Drift en avril 2026 (285 millions de dollars) a combiné de l'ingénierie sociale et un accès administrateur légitime. Ces attaques ont commencé en dehors de la blockchain, exactement là où TrapDoor opère.
Les chercheurs en sécurité estiment qu'une compromission de type TrapDoor atteignant les clés de déploiement d'un protocole DeFi de taille moyenne à grande pourrait entraîner des pertes de 100 millions à 300 millions de dollars.
Socket a détecté TrapDoor avec un temps médian de détection de 5 minutes et 27 secondes, le cas le plus rapide ayant été une détection 58 secondes après publication. L'attaquant a opéré depuis le compte GitHub ddjidd564 et le compte npm asdxzxc, en utilisant un domaine GitHub Pages pour héberger le payload.
Les outils standards comme npm audit, pip audit et cargo audit ne peuvent pas détecter le vecteur d'empoisonnement IA. Les "instructions" malveillantes sont du langage naturel caché en Unicode, pas du code exécutable au sens conventionnel.
Auditez vos dépendances. Recherchez dans vos fichiers package.json, requirements.txt et Cargo.toml l'un des 34 packages listés.
Faites tourner toutes vos clés et identifiants sur toute machine potentiellement affectée : clés SSH, clés d'accès AWS, jetons GitHub et clés privées de portefeuilles. Déplacez immédiatement les fonds crypto vers un portefeuille neuf si des clés étaient stockées sur la machine.
Vérifiez les mécanismes de persistance. Inspectez les fichiers .cursorrules et CLAUDE.md pour des caractères Unicode à largeur nulle en utilisant cat -v ou un éditeur hexadécimal. Passez en revue les hooks Git dans .git/hooks/, les tâches cron, les services systemd et les profils shell pour détecter des ajouts suspects.
Désactivez l'exécution automatique de scripts dans les CI/CD : utilisez npm ci --ignore-scripts et pip install --no-build-isolation.
Déployez des outils d'analyse de dépendances qui réalisent une analyse comportementale, pas seulement une recherche de CVE. Mettez en version les fichiers .cursorrules et CLAUDE.md afin que les changements apparaissent dans les diffs. Ajoutez des hooks pre-commit qui vérifient la présence de caractères Unicode à largeur nulle dans les fichiers de configuration. Utilisez des hardware wallets pour toutes les clés de déploiement et imposez le multisig pour les fonctions d'administration.
TrapDoor marque un tournant dans la sécurité de la chaîne d'approvisionnement. L'attaque event-stream visait un package dans un seul écosystème. TrapDoor coordonne trois écosystèmes simultanément, valide les identifiants avant exfiltration, établit plusieurs mécanismes de persistance, se déplace latéralement dans les réseaux et empoisonne les assistants de codage IA, des outils qui deviennent rapidement la norme dans le flux de travail des développeurs.
À mesure que les assistants IA s'intègrent plus profondément aux processus de développement, la surface d'attaque qu'ils créent ne fera que croître. L'astuce des caractères Unicode invisibles fonctionne parce que les outils IA traitent l'intégralité du contenu textuel des fichiers de configuration. Tant que les frameworks d'assistants IA n'implémenteront pas de désinfection du contenu pour les caractères cachés, ce vecteur restera ouvert.
Pour les développeurs crypto, le message est clair, votre environnement de développement est désormais une surface d'attaque primaire. Traitez la sécurité des machines développeurs avec la même rigueur que les audits de contrats intelligents.
Avertissement : Cet article est fourni à titre informatif uniquement et ne constitue pas un conseil financier. Les investissements en cryptomonnaies comportent des risques importants. Faites toujours vos propres recherches et consultez un conseiller financier qualifié avant de prendre des décisions d'investissement.
Analyses de marché et insights actionnables. Pas de spam, jamais.