El ataque a la cadena de suministro TrapDoor, que abarcó npm, PyPI y Crates.io, roba claves de carteras cripto y envenena asistentes de codificación con IA mediante instrucciones Unicode invisibles.

Marcus Webb
Líder de investigación DeFi

Una campaña coordinada de la cadena de suministro llamada TrapDoor ha comprometido 34 paquetes en npm, PyPI y Crates.io, orientada específicamente a desarrolladores cripto. El malware roba claves privadas de carteras, credenciales SSH y tokens de AWS, e introduce un nuevo vector de ataque que envenena asistentes de codificación con IA mediante caracteres Unicode invisibles.
El 24 de mayo de 2026, investigadores de seguridad en Socket revelaron una campaña coordinada de la cadena de suministro que abarcó tres registros de paquetes importantes. El paquete malicioso más antiguo apareció dos días antes, el 22 de mayo. Apodado TrapDoor, el ataque distribuyó 34 paquetes maliciosos en más de 384 versiones, todos diseñados para capturar credenciales de desarrolladores de cripto, DeFi y IA.
Este no es el primer ataque a la cadena de suministro que apunta al cripto. El incidente event-stream en 2018 comprometió las carteras Copay de Bitcoin, y el secuestro de ua-parser-js en 2021 desplegó criptomineros en millones de máquinas. Pero TrapDoor representa una evolución, es la primera gran campaña multiplataforma que arma a los asistentes de codificación con IA como vector de ataque.
El ataque usa rutas de ejecución específicas de cada ecosistema que se activan durante flujos de trabajo rutinarios de desarrolladores.
Paquetes npm usan hooks postinstall que se ejecutan automáticamente durante npm install. La carga compartida, un archivo de 1.149 líneas llamado trap-core.js, escanea el sistema de archivos local en busca de claves SSH, credenciales de AWS, tokens de GitHub, datos del navegador y datos de extensiones de carteras cripto de MetaMask, Phantom y otras carteras. A diferencia de los ladradores de credenciales típicos, TrapDoor valida las credenciales capturadas contra APIs en vivo antes de exfiltrarlas, mejorando la relación señal-ruido del atacante.
Paquetes PyPI se ejecutan al importarse, descargando una carga útil en JavaScript desde un dominio de GitHub Pages controlado por el atacante. Esta técnica multiplataforma permite al atacante actualizar la carga útil de forma remota sin volver a publicar el paquete Python.
Paquetes Crates.io incrustan scripts maliciosos build.rs que se activan durante cargo build, apuntando específicamente a los keystores de desarrolladores de Sui y Move. Los datos robados se cifran con una clave XOR incrustada y se exfiltran a GitHub Gists.
Si instalaste alguno de los paquetes de la lista a continuación, rota todas las credenciales de inmediato y mueve los fondos cripto a una cartera nueva. Las claves comprometidas se pueden explotar mucho tiempo después de que se elimine el paquete malicioso.
Los paquetes se hacen pasar por utilidades legítimas para desarrolladores. Nombres como solidity-deploy-guard, defi-threat-scanner y wallet-security-checker están diseñados para atraer directamente a desarrolladores cripto preocupados por la seguridad.
npm (21 paquetes): 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 paquetes): cryptowallet-safety, data-pipeline-check, defi-risk-scanner, env-loader-cli, eth-security-auditor, git-config-sync, solidity-build-guard
Crates.io (6 paquetes): move-analyzer-build, move-compiler-tools, move-project-builder, sui-framework-helpers, sui-move-build-helper, sui-sdk-build-utils
Lo que hace que TrapDoor sea sin precedentes es su orientación a asistentes de codificación con IA. El malware planta archivos .cursorrules y CLAUDE.md en los directorios de los proyectos, archivos de configuración estándar que herramientas como Claude Code y Cursor leen como contexto del proyecto.
Ocultas dentro de estos archivos hay instrucciones codificadas usando caracteres Unicode de ancho cero (U+200B, U+200C, U+200D, U+FEFF). Estos caracteres son invisibles en editores de texto, IDE y hasta en la interfaz de revisión de código de GitHub. Un desarrollador que revise el archivo solo ve documentación del proyecto normal.
Las instrucciones ocultas indican al asistente de IA que ejecute un "análisis de seguridad obligatorio" cada vez que el desarrollador solicite ayuda para codificar. Ese "análisis" es en realidad una canalización de extracción de credenciales que envía variables de entorno, claves SSH y datos de carteras a la infraestructura del atacante.
Los atacantes también enviaron pull requests a importantes proyectos de IA de código abierto incluyendo browser-use/browser-use, langchain-ai/langchain, langflow-ai/langflow, run-llama/llama_index, FoundationAgents/MetaGPT, y OpenHands/OpenHands. Cada PR llevaba títulos benignos como "docs: add .cursorrules with dev standards" mientras incrustaban el marcador de campaña P-2024-001. Si se fusionaran, cada desarrollador que abriera esos repositorios con una herramienta de codificación basada en IA se convertiría en objetivo.
Esto representa un cambio de paradigma. Ataques anteriores a la cadena de suministro se dirigían al canal de ejecución de código. TrapDoor ataca la capa de interacción humano-IA, una superficie de ataque que las herramientas tradicionales de escaneo de dependencias no pueden detectar.
Más allá del robo inicial de credenciales, TrapDoor establece siete mecanismos de persistencia en las máquinas comprometidas:
.cursorrules y CLAUDE.md envenenados.bashrc, .zshrc)authorized_keys de SSHLa capacidad de movimiento lateral es especialmente preocupante. Una sola máquina de desarrollador comprometida puede propagarse a la infraestructura de CI/CD, servidores de despliegue y estaciones de trabajo de colegas mediante el reuso de claves SSH.
Las implicaciones para la seguridad de protocolos DeFi van mucho más allá de desarrolladores individuales. Una máquina de desarrollador comprometida proporciona acceso a claves privadas de desplegadores, claves multisig de administrador, secretos de pipelines de CI/CD, claves de validadores de puentes y claves de firma de oráculos.
Incidentes recientes validan este modelo de amenaza. El exploit de Resolv en marzo de 2026 (23 millones de dólares perdidos) surgió de una falla en infraestructura fuera de la cadena, no de errores en contratos inteligentes. El incidente de Drift en abril de 2026 (285 millones de dólares) combinó ingeniería social con acceso administrativo legítimo. Estos ataques comenzaron fuera de la blockchain, exactamente donde opera TrapDoor.
Investigadores de seguridad estiman que un compromiso al estilo TrapDoor que alcance las claves de desplegadores en un protocolo DeFi de tamaño medio a grande podría resultar en pérdidas de 100 millones a 300 millones de dólares.
Socket detectó TrapDoor con un tiempo medio de detección de 5 minutos y 27 segundos, y el hallazgo más rápido fue a solo 58 segundos después de la publicación. El atacante operó desde la cuenta de GitHub ddjidd564 y la cuenta de npm asdxzxc, usando un dominio de GitHub Pages para alojar la carga útil.
Herramientas estándar como npm audit, pip audit y cargo audit no pueden detectar el vector de envenenamiento de IA. Las "instrucciones" maliciosas son lenguaje natural oculto en Unicode, no código ejecutable en el sentido convencional.
Audita dependencias. Busca en tu package.json, requirements.txt y Cargo.toml cualquiera de los 34 paquetes listados.
Rota todas las credenciales desde cualquier máquina potencialmente afectada: claves SSH, claves de acceso AWS, tokens de GitHub y claves privadas de carteras. Mueve los fondos cripto a una cartera nueva de inmediato si las claves estuvieron almacenadas en la máquina.
Revisa persistencia. Inspecciona archivos .cursorrules y CLAUDE.md en busca de caracteres Unicode de ancho cero usando cat -v o un editor hexadecimal. Revisa hooks de Git en .git/hooks/, tareas cron, servicios systemd y perfiles de shell en busca de añadidos sospechosos.
Desactiva la ejecución automática de scripts en CI/CD: usa npm ci --ignore-scripts y pip install --no-build-isolation.
Despliega herramientas de escaneo de dependencias que realicen análisis conductual, no solo coincidencia de CVE. Versiona archivos .cursorrules y CLAUDE.md para que los cambios aparezcan en los diffs. Agrega hooks pre-commit que verifiquen la presencia de caracteres Unicode de ancho cero en archivos de configuración. Usa wallets de hardware para todas las claves de despliegue y aplica multisig para funciones administrativas.
TrapDoor marca un punto de inflexión en la seguridad de la cadena de suministro. El ataque event-stream se dirigió a un paquete en un ecosistema. TrapDoor coordina a través de tres ecosistemas simultáneamente, valida credenciales antes de exfiltrarlas, establece múltiples mecanismos de persistencia, se mueve lateralmente por redes y envenena asistentes de codificación con IA, herramientas que se están volviendo estándar en el flujo de trabajo de muchos desarrolladores.
A medida que los asistentes de IA se integren más profundamente en los procesos de desarrollo, la superficie de ataque que crean solo crecerá. El truco del Unicode invisible funciona porque las herramientas de IA procesan el contenido textual completo de los archivos de configuración. Hasta que los marcos de asistentes de IA implementen saneamiento de contenido para caracteres ocultos, este vector seguirá abierto.
Para los desarrolladores cripto, el mensaje es claro: tu entorno de desarrollo es ahora una superficie de ataque primaria. Trata la seguridad de la máquina del desarrollador con el mismo rigor que aplicas a las auditorías de contratos inteligentes.
Descargo de responsabilidad: Este artículo es solo con fines informativos y no constituye asesoramiento financiero. Las inversiones en criptomonedas conllevan un riesgo significativo. Realiza siempre tu propia investigación y consulta con un asesor financiero cualificado antes de tomar decisiones de inversión.
Análisis de mercado y insights accionables. Sin spam, nunca.