Investigadores de Socket han descubierto un ataque coordinado a la cadena de suministro, con nombre en clave TrapDoor, que afectó simultáneamente a los tres mayores registros de paquetes: npm, PyPI y Crates.io. Según los investigadores, la campaña incluye más de 34 paquetes maliciosos en más de 384 versiones, dirigidos al robo de monederos de criptomonedas, claves SSH, credenciales en la nube y variables de entorno. Se recomienda a los desarrolladores que trabajan con proyectos de criptomonedas, herramientas DeFi, la plataforma Solana y soluciones de IA que comprueben de inmediato sus dependencias en busca de los paquetes que se enumeran a continuación.
Alcance y cronología de la campaña
Según Socket, la primera actividad de TrapDoor se registró el 22 de mayo de 2026 a las 20:20 UTC. Los nuevos paquetes se publicaban en oleadas desde un conjunto de cuentas en rápida sucesión, una táctica típica de los ataques coordinados a la cadena de suministro, en los que el atacante intenta maximizar el alcance antes de ser descubierto.
El listado completo de paquetes maliciosos se distribuye entre las distintas ecosistemas de la siguiente manera:
- Crates.io (6 paquetes): move-analyzer-build, move-compiler-tools, move-project-builder, sui-framework-helpers, sui-move-build-helper, sui-sdk-build-utils
- 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
Los nombres de los paquetes se han escogido para que parezcan herramientas legítimas de desarrollo de criptomonedas, auditoría de seguridad, configuración de entornos y trabajo con IA. Los paquetes de Crates.io imitan deliberadamente herramientas del ecosistema Sui y Move.
Implementación técnica por ecosistemas
npm: carga útil común trap-core.js
Varios paquetes de npm utilizan hooks postinstall para ejecutar el módulo JavaScript común trap-core.js. Este módulo realiza las siguientes acciones: escanea el sistema de archivos en busca de credenciales y secretos del desarrollador, valida los tokens robados de AWS y GitHub mediante llamadas a las API correspondientes, establece persistencia a través de tareas cron, servicios systemd y hooks de Git, y además lleva a cabo movimiento lateral en la red mediante SSH.
Crates.io: exfiltración a través de GitHub Gists
Los paquetes maliciosos en Rust utilizan el mecanismo de scripts de compilación de Cargo (build.rs) para ejecutar código malicioso en la fase de compilación. El malware busca almacenes locales de claves, cifra los datos encontrados mediante una clave XOR codificada de forma estática y los envía a GitHub Gists. El uso de build.rs, un mecanismo estándar de Cargo, dificulta la detección de la actividad maliciosa sin un análisis especializado.
PyPI: delegación de la ejecución a JavaScript remoto
Los paquetes de Python se ejecutan automáticamente al ser importados. Su tarea principal es descargar JavaScript desde el dominio del atacante ddjidd564.github[.]io (GitHub Pages) y ejecutarlo mediante node -e. Este enfoque permite al atacante actualizar el comportamiento del código malicioso sin publicar nuevas versiones del paquete en PyPI: basta con cambiar el contenido en GitHub Pages.
Ataque a asistentes de IA mediante envenenamiento de archivos de configuración
El elemento más inusual de la campaña es la inserción de archivos .cursorrules y CLAUDE.md con instrucciones ocultas dirigidas a manipular asistentes de IA para programación. Estos archivos contienen directrices que incitan a la IA a lanzar una “comprobación de seguridad” que, en realidad, conduce al descubrimiento y exfiltración de secretos.
Según Socket, el atacante abría pull requests en proyectos populares relacionados con IA, entre ellos browser-use/browser-use, langchain-ai/langchain y langflow-ai/langflow. Los investigadores plantean la hipótesis de que el atacante probaba la posibilidad de introducir archivos de configuración maliciosos a través de los flujos de trabajo estándar de contribución a código abierto. Si dichos archivos llegaran a incorporarse al repositorio, las herramientas de IA para escritura de código analizarían automáticamente las instrucciones ocultas y las ejecutarían. Esta valoración procede de una única fuente de investigación y requiere confirmación independiente.
Indicadores de compromiso
- Dominio: ddjidd564.github[.]io: se utiliza para alojar cargas útiles JavaScript remotas
- Archivos: trap-core.js: módulo malicioso común en paquetes de npm
- Mecanismos de persistencia: .cursorrules, CLAUDE.md, hooks de Git, hooks de shell, servicios systemd, tareas cron, configuración SSH
Evaluación del impacto
Los desarrolladores que trabajan con proyectos de criptomonedas, protocolos DeFi, la blockchain de Solana y herramientas de IA son quienes corren mayor riesgo. La intrusión en la estación de trabajo de un desarrollador puede provocar la filtración de claves privadas de monederos de criptomonedas, credenciales en la nube de AWS, tokens de GitHub y claves SSH, lo que abre la puerta a ataques posteriores contra la infraestructura de la organización. El mecanismo de movimiento lateral mediante SSH implica que una única máquina comprometida puede convertirse en punto de entrada a la red corporativa.
Recomendaciones
- Revise las dependencias: audite los archivos package.json, requirements.txt y Cargo.toml en busca de cualquiera de los 34 paquetes enumerados. Elimine los paquetes detectados y todos los artefactos relacionados.
- Rotación de secretos: si se ha instalado un paquete malicioso, revoque y vuelva a emitir de inmediato todos los tokens de AWS, GitHub, claves SSH y frases mnemotécnicas de monederos de criptomonedas a los que haya podido acceder el sistema comprometido.
- Compruebe los mecanismos de persistencia: revise las tareas cron (
crontab -l), los servicios systemd, los hooks de Git en los repositorios (.git/hooks/), así como los archivos .cursorrules y CLAUDE.md en la raíz de los proyectos. - Bloquee el dominio: añada ddjidd564.github[.]io a las listas de bloqueo a nivel de DNS y proxy.
- Revise los pull requests: al mantener proyectos de código abierto, examine los PR entrantes en busca de archivos .cursorrules y CLAUDE.md con instrucciones sospechosas.
- Utilice herramientas de análisis de dependencias: implante la comprobación de paquetes en la fase de CI/CD mediante escáneres especializados capaces de detectar hooks postinstall sospechosos, scripts build.rs y autoejecución al importar.
La campaña TrapDoor demuestra la convergencia de dos tendencias: el typosquatting clásico de paquetes y la explotación de nuevos vectores a través de asistentes de IA para el desarrollo. La acción prioritaria es auditar las dependencias según el listado de paquetes proporcionado, seguida de la rotación de todos los secretos en los sistemas afectados. Los equipos que utilicen herramientas de IA para escritura de código (Cursor, Claude) deben además revisar sus repositorios en busca de archivos de configuración no autorizados que puedan dirigir el comportamiento de los asistentes de IA.