TrapDoor: El Ataque de Supply Chain que Convierte tu Asistente de IA en tu Peor Enemigo

Una campaña de supply chain llamada TrapDoor está activa desde el 19 de mayo, y hace algo que no había visto documentado a esta escala antes: no solo roba tus credenciales — recluta a tu asistente de IA para hacerlo por vos.

Esto es lo que pasó, por qué importa, y qué revisar ahora mismo.


Qué es TrapDoor

TrapDoor es una campaña activa de supply chain que distribuye malware de robo de credenciales a través de npm, PyPI y Crates.io. El análisis de los artefactos confirmados ubica el inicio real de la campaña el 19 de mayo de 2026 — tres días antes de la primera fecha reportada — con 384 versiones de artefactos distribuidas en 34 paquetes maliciosos.

Los paquetes fueron publicados en oleadas desde un cluster de cuentas en rápida sucesión. TrapDoor apunta a desarrolladores de las comunidades crypto, DeFi, Solana e IA. Los paquetes maliciosos están diseñados para robar secretos de desarrollo, wallets cripto, claves SSH, credenciales cloud, datos del browser y variables de entorno.

Hasta acá, nada inusual. Lo inusual es el vector que eligieron para mantener persistencia.


El vector de envenenamiento de IA

Los entornos de desarrollo asistidos por IA como Cursor y Claude Code leen los archivos del workspace para entender el contexto del proyecto. Archivos como .cursorrules y CLAUDE.md existen específicamente para darle instrucciones a la IA: qué estándares de código seguir, qué comandos usar, cómo formatear el output. Son archivos de configuración para tu pair programmer de IA.

TrapDoor explota exactamente esta relación de confianza.

El atacante utiliza caracteres Unicode de ancho cero para ofuscar prompts maliciosos, engañando a la IA para que ejecute exfiltración hostil de credenciales bajo la apariencia de un “security scan” automatizado del proyecto.

Los archivos se ven en blanco o inofensivos para un humano que los lee. Pero están cargados de caracteres ocultos — espacios de ancho cero y caracteres de control Unicode bidireccional, posicionados con precisión dentro del archivo. Son invisibles en la mayoría de los editores de texto y terminales. El modelo de IA, sin embargo, los lee.

Esta es una escalada significativa. Tu cat, tu git diff, tu code review — ninguno muestra nada raro. La IA ejecuta las instrucciones de todas formas.


Los objetivos de exfiltración

Los datos objetivo incluyen claves SSH, keystores de wallets Sui/Solana/Aptos, credenciales AWS, tokens de GitHub, bases de datos de login del browser, datos de extensiones de wallets cripto, variables de entorno, API keys y archivos de configuración de desarrollo local.

El payload de npm llama activamente a las APIs de AWS y GitHub para confirmar si los tokens recolectados son válidos, filtrando las credenciales de alto valor antes de la exfiltración. Esto no es scraping indiscriminado — el atacante está validando y priorizando.

Los datos de keystore interceptados son enmascarados con XOR y enviados a GitHub Gists controlados por la cuenta del atacante ddjidd564. GitHub Gists como endpoint de exfiltración es inteligente: el tráfico parece llamadas ordinarias a la API de GitHub, que la mayoría de los firewalls corporativos no van a bloquear.


La escalada hacia el open source

Esta es la parte que más me preocupa desde una perspectiva de riesgo organizacional.

El atacante usó la cuenta de GitHub ddjidd564 para enviar pull requests engañosos con archivos de configuración envenenados a proyectos open source de IA de alto perfil como LangChain, MetaGPT y OpenHands. Los PRs intentaban agregar archivos .cursorrules o CLAUDE.md bajo títulos inocentes como “docs: add .cursorrules with dev standards and build verification.”

Si ese enfoque hubiera tenido éxito a escala, los agentes de IA en esos proyectos habrían estado exfiltrando credenciales silenciosamente desde las máquinas de los desarrolladores durante flujos de trabajo normales.

La estrategia es clara: lograr que configuración maliciosa quede mergeada en proyectos open source populares, y cada desarrollador que clone esos repos recibe un archivo de contexto de IA comprometido. A partir de ahí el ataque escala sin necesidad de publicar más paquetes.


Lo que funcionó: velocidad de detección

Socket detectó estos releases de TrapDoor con un tiempo de detección mediano de 5 minutos y 27 segundos, clasificando efectivamente toda la campaña como maliciosa antes de que pudiera producirse una adopción masiva.

Eso es genuinamente bueno. Pero “clasificado antes de adopción masiva” no es lo mismo que “nadie lo instaló.” Algunos paquetes ya habían sido removidos mientras otros permanecían live. Si tu equipo instaló algo entre el 19 y el 25 de mayo desde los ecosistemas afectados sin pasar por un registry de dependencias bloqueado, tenés que auditar.


Qué revisar ahora mismo

Si algún desarrollador de tu equipo instaló paquetes de npm, PyPI o Crates.io durante el 19–25 de mayo, los siguientes pasos no son opcionales:

1. Escaneá tus archivos de contexto de IA en busca de Unicode oculto:

cat -v .cursorrules CLAUDE.md AGENTS.md 2>/dev/null

Cualquier carácter no imprimible en esos archivos debe tratarse como indicador de compromiso.

2. Verificá la presencia de paquetes TrapDoor conocidos:

# npm
npm ls 2>/dev/null | grep -E "wallet-security-checker|defi-threat-scanner|token-usage-tracker|prompt-engineering-toolkit|llm-context-compressor"

# PyPI
pip list 2>/dev/null | grep -E "eth-security-auditor|cryptowallet-safety|defi-risk-scanner"

3. Rotá credenciales inmediatamente si encontrás algo:
Rotá credenciales AWS, tokens de GitHub y claves SSH. Revisá repositorios y directorios home en busca de archivos .cursorrules y CLAUDE.md modificados recientemente o inesperados. Tratá cualquier cambio inexplicable en esos archivos como un evento de impacto en seguridad, no como drift de documentación.

4. Auditá tus contribuciones open source: Si mantenés un repositorio que recibió un PR de ddjidd564, cerralo inmediatamente y auditá si algún contenido fue mergeado.

5. Tratá el CI/CD como potencialmente expuesto: Las claves SSH robadas son utilizadas para movimiento lateral, exponiendo potencialmente pipelines de CI/CD, repositorios privados e infraestructura de deployment downstream.


El problema estructural

Los investigadores de Socket encontraron un documento AUDIT-MATRIX.md dentro del repositorio de GitHub Pages del atacante. El archivo describe la operación como un “Universal AI Agent Extraction Framework” y detalla un flujo de trabajo en etapas para detección de capacidades, extracción de datos, autoreplicación y reporte de telemetría.

Esto no fue improvisado. Alguien diseñó un framework específicamente para weaponizar asistentes de IA de coding, y luego ejecutó una campaña coordinada cross-ecosystem para desplegarlo.

La implicación más amplia: la superficie de ataque de tu entorno de desarrollo ahora incluye cada archivo que leen tus herramientas de IA. .cursorrules, CLAUDE.md, AGENTS.md, archivos de system prompt en cualquier proyecto que clones — todos son vectores ahora. Los scanners estándar basados en CVE no tienen visibilidad acá. Esto opera por debajo del piso de detección de la mayoría del tooling de seguridad en uso hoy.

Vamos a ver más de esto.


Fuentes: Socket Security · The Hacker News · Phoenix Security