Attaque TrapDoor : des développeurs de cryptomonnaies et d'IA ciblés sur npm, PyPI et Crates.io
Une attaque sophistiquée de la chaîne d'approvisionnement logicielle, baptisée **TrapDoor**, a été découverte, ciblant les développeurs dans les secteurs de la cryptographie, de la DeFi, de Solana et de l'IA. La campagne coordonnée s'étend sur plusieurs écosystèmes, notamment npm, PyPI et Crates.io, distribuant des malwares voleurs d'identifiants via des packages malveillants.

**Attaque Inter-Écosystèmes : TrapDoor**
Une nouvelle campagne coordonnée d'attaque de la chaîne d'approvisionnement logicielle inter-écosystèmes a ciblé npm, PyPI et Crates.io pour distribuer des malwares voleurs d'identifiants.
La campagne, nommée **TrapDoor**, couvre plus de 34 packages malveillants sur plus de 384 versions. La première activité a été enregistrée le 22 mai 2026 à 20h20 UTC, avec de nouveaux packages publiés dans les écosystèmes par vagues successives à partir d'un cluster de comptes.
Selon **Socket**, « TrapDoor cible les développeurs des communautés crypto, DeFi, Solana et IA. Les packages malveillants sont conçus pour voler les secrets des développeurs, les portefeuilles de cryptomonnaies, les clés SSH, les identifiants cloud, les données de navigateur et les variables d'environnement. »
Plusieurs packages npm déploient également un payload partagé, `trap-core.js`, qui scanne les identifiants, valide les jetons **AWS** et **GitHub**, tente des mouvements latéraux basés sur SSH et établit la persistance via `.cursorrules`, `CLAUDE.md`, les hooks Git, les hooks shell, systemd, cron et SSH.
Il est important de noter que cette activité est distincte d'une autre campagne portant le même nom, précédemment détaillée par l'équipe Satori Threat Intelligence and Research de **HUMAN**, qui se concentrait sur la fraude publicitaire via des applications Android sur le **Google Play Store**.
**Packages Malveillants Identifiés**
Les packages suivants ont été identifiés comme faisant partie de la campagne TrapDoor :
* Crates.io
* `move-analyzer-build`
* `move-compiler-tools`
* `move-project-builder`
* `sui-framework-helpers`
* `sui-move-build-helper`
* `sui-sdk-build-utils`
* npm
* `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
* `cryptowallet-safety`
* `data-pipeline-check`
* `defi-risk-scanner`
* `env-loader-cli`
* `eth-security-auditor`
* `git-config-sync`
* `solidity-build-guard`
**Détails Techniques et Tactiques**
L'opération se distingue par ses divers mécanismes de livraison. Elle exploite les hooks postinstall, les payloads JavaScript distants exécutés lors de l'importation de packages et les scripts `build.rs` malveillants pour cibler les développeurs Sui et Move. Les packages sont conçus pour apparaître comme des outils légitimes, permettant aux attaquants d'atteindre un large public.
Les packages npm exécutent un payload JavaScript (`trap-core.js`) qui scanne les identifiants, valide les identifiants volés à l'aide des API **AWS** et **GitHub**, et établit la persistance via des jobs cron, des services systemd et des hooks Git. Il tente également des mouvements latéraux via SSH.
Les crates Rust recherchent de manière similaire des keystores locaux, chiffrent les données à l'aide d'une clé XOR codée en dur et les exfiltrent vers des Gists **GitHub**. L'utilisation d'un script de build (`build.rs`) est cruciale pour déclencher l'exécution du code malveillant.
Les packages Python sont conçus pour une exécution automatique à l'importation. Leur fonction principale est de télécharger du JavaScript depuis un domaine **GitHub** Pages contrôlé par l'attaquant et de l'exécuter à l'aide de `node -e`.
**Manipulation des Assistants IA**
Un aspect particulièrement inhabituel est l'inclusion de fichiers `.cursorrules` et `CLAUDE.md` contenant des instructions cachées visant à tromper les assistants IA. Ces instructions incitent l'IA à effectuer un « scan de sécurité » qui conduit à la découverte et à l'exfiltration de secrets. Ceci est réalisé en ouvrant des pull requests (PR) sur des projets populaires d'IA et de développement, notamment `browser-use/browser-use`, `langchain-ai/langchain` et `langflow-ai/langflow`.
Cette activité de PR suggère que TrapDoor va au-delà de la simple publication de packages malveillants. **Socket** estime que l'acteur de la menace teste si les fichiers de projet liés à l'IA peuvent être introduits via des flux de travail de contribution open-source réguliers, amenant les outils de codage IA à analyser et appliquer ces instructions cachées.
**Implications et Recommandations**
Ces découvertes soulignent la tendance croissante des acteurs de la menace à cibler les flux de travail des développeurs pour voler des informations sensibles, permettant une pénétration plus profonde dans les environnements cibles pour des attaques ultérieures.
**Socket** conclut : « TrapDoor montre comment les attaquants combinent le typosquatting de packages traditionnel avec des chemins d'attaque d'environnement de développement plus récents. Les noms de packages sont adaptés pour paraître pertinents pour le développement de cryptomonnaies, les outils d'IA, la configuration de l'environnement local et les flux de travail de sécurité. Le malware utilise ensuite des chemins d'exécution spécifiques à l'écosystème : `build.rs` en Rust, les hooks postinstall dans npm, et l'exécution à l'importation en Python. »