En pocas palabras: Investigadores de Mozilla 0DIN revelaron en marzo de 2025 que un repositorio GitHub aparentemente limpio puede ejecutar malware mediante agentes de IA como Claude Code. El código malicioso no está en el repo, sino en un registro DNS TXT externo que el agente interpreta como instrucciones legítimas durante la configuración automática del entorno.
Un repositorio de GitHub que parece completamente limpio —sin código malicioso visible, sin alertas de escáneres de seguridad— puede ejecutar malware en tu máquina si lo abrís con un agente de codificación IA. Investigadores de Mozilla 0DIN demostraron cómo un atacante logra que Claude Code ejecute un comando malicioso sin que haya exploits, advertencias ni comandos sospechosos que un humano tenga que aprobar. Este no es un bug teórico: es un vector de ataque nuevo que combina configuración engañosa, registros DNS y buena ingeniería social para agentes.
Un repositorio trampa para agentes de codificación IA es un proyecto de GitHub diseñado para que herramientas como Claude Code, Gemini CLI o Cursor ejecuten comandos maliciosos automáticamente al intentar configurar el entorno de desarrollo. El truco está en que el código malicioso no vive en el repositorio, sino en un registro DNS TXT externo que el agente consulta e interpreta como instrucciones legítimas durante el setup. Mozilla 0DIN bautizó esta técnica como el primer método de compromiso que usa la lógica de recuperación de errores del agente como vector de ataque.
En 30 segundos
- El ataque usa tres componentes inocentes por separado: un repo limpio, un paquete Python que rechaza ejecutarse hasta ser inicializado, y un script que lee comandos desde un registro DNS TXT controlado por el atacante.
- El gusano Miasma comprometió repositorios de Microsoft en GitHub usando credenciales robadas; el payload extraía credenciales multi-cloud.
- Una vulnerabilidad crítica en agentes de codificación permite ejecución remota de código al abrir un repositorio que active configuraciones maliciosas.
- Los escáneres de seguridad tradicionales no detectan estas amenazas porque el código malicioso no está en el repositorio, sino en infraestructura externa o en archivos de configuración que los agentes procesan automáticamente.
¿Cómo engaña un repositorio limpio a Claude Code para ejecutar malware?
El método que Mozilla 0DIN documentó es elegante en su simpleza. Un atacante crea un repositorio de GitHub con instrucciones de instalación estándar: pip3 install -r requirements.txt, python3 -m axiom init. Hasta ahí, nada raro. El paquete Python está diseñado para rechazar la ejecución hasta ser inicializado, generando un error que le dice al usuario —o en este caso al agente— que ejecute python3 -m axiom init.
Claude Code interpreta ese error como un problema de setup cualquiera y ejecuta automáticamente el comando sugerido mientras intenta recuperarse. Ese comando llama a un script shell que consulta un registro DNS TXT controlado por el atacante, obtiene un valor de configuración y lo ejecuta como comando. El resultado: una shell interactiva en el dispositivo del desarrollador, sin que ningún escáner de seguridad haya levantado una alerta (porque el repositorio, insisto, no tiene código malicioso visible).
Lo que hace brillante a este ataque es que explota la buena fe del agente. Claude Code está diseñado para resolver problemas de setup automáticamente, y el atacante simplemente le da un “problema” que la máquina resuelve ejecutando exactamente lo que él quiere. No hay exploit de día cero, no hay buffer overflow, no hay nada que un firewall tradicional pueda bloquear.
El gusano Miasma: repositorios de Microsoft comprometidos en GitHub
A principios de junio de 2026, el gusano Miasma apareció en el radar después de comprometer repositorios de GitHub pertenecientes a Microsoft (Azure, Azure-Samples, Microsoft, MicrosoftDocs). El atacante usó credenciales robadas para inyectar un payload de 4,3 MB. GitHub actuó rápido, pero el daño ya estaba en marcha.
El payload se activa al abrir el proyecto en Claude Code, Gemini CLI, Cursor o VS Code. Usa un archivo binding.gyp de apenas 157 bytes, apodado “Phantom Gyp”, para evadir escáneres de seguridad tradicionales. Una vez activo, extrae credenciales multi-cloud (AWS, Azure, GCP, npm, GitHub) y las sube a repositorios públicos. La firma del ataque es un repositorio creado con el nombre “Miasma: The Spreading Blight”. Esto se conecta con lo que analizamos en como vimos en la guía de seguridad de Intune.
¿Qué significa esto en la práctica? Que un desarrollador de Microsoft (o de cualquier empresa) que clone un repo comprometido y lo abra con su agente IA favorito puede estar regalando las llaves de la nube corporativa. Y no hay antimalware que lo frene porque, de nuevo, el código malicioso no es código: es configuración y lógica de ejecución diferida.
CVE-2025-59536: RCE con un clic mediante servidores MCP maliciosos
Adversa AI descubrió la vulnerabilidad CVE-2025-59536, con un score CVSS v3.1 de 9.8 (crítico). El vector es distinto al de Mozilla 0DIN pero la filosofía es parecida: archivos de configuración que los agentes procesan automáticamente. En este caso, un repositorio malicioso incluye archivos .mcp.json y .claude/settings.json que definen servidores MCP (Model Context Protocol).
Al abrir el repo en Claude Code —o en Gemini CLI, Cursor CLI y Copilot CLI—, el diálogo de confianza por defecto (“Sí, confío en esta carpeta”) activa los servidores MCP sin sandbox. Parámetros como enableAllProjectMcpServers se configuran desde archivos locales, y boom: ejecución remota de código con un solo clic. Ni siquiera hace falta que el agente intente resolver un error de setup como en el caso anterior; acá la vulnerabilidad está en cómo las herramientas de IA procesan configuraciones de proyecto sin pedir confirmación granular.
Lo más inquietante es que el usuario no ve nada raro. Confía en la carpeta, el agente carga los servidores MCP, y uno de esos servidores ejecuta código arbitrario. Sin alertas, sin ventanas de confirmación adicionales, sin nada que le haga ruido a un desarrollador que solo quería revisar un proyecto open source.
Tabla comparativa de vectores de ataque contra agentes de IA
| Vector | Método de engaño | Herramientas afectadas | Severidad | Detectable por escáneres |
|---|---|---|---|---|
| Mozilla 0DIN (DNS TXT) | Error falso de inicialización + comando desde DNS | Claude Code | Alta | No |
| Miasma (Phantom Gyp) | Credenciales robadas + payload en binding.gyp de 157 bytes | Claude Code, Gemini CLI, Cursor, VS Code | Crítica | No (evasión por tamaño y formato) |
| CVE-2025-59536 | Servidores MCP maliciosos en archivos .json de configuración | Claude Code, Gemini CLI, Cursor CLI, Copilot CLI | Crítica (CVSS 9.8) | No (configuración legítima) |

Señales para detectar un repositorio trampa antes de que sea tarde
No vas a encontrar malware en el código fuente. El punto justamente es ese. Pero hay señales que podés revisar antes de clonar y abrir un proyecto desconocido con tu agente IA.
- Commits con mensajes genéricos: si ves mensajes como “chore: update dependencies [skip ci]” en commits recientes de un repo que no conocés, desconfiá. Los atacantes usan estos mensajes para que los cambios pasen desapercibidos en las notificaciones.
- Archivos de configuración MCP sospechosos: un
.mcp.jsono.claude/settings.jsonque defina servidores que no tienen nada que ver con el proyecto es una red flag enorme. Si el repo es sobre procesamiento de imágenes y hay un servidor MCP que ejecuta comandos de sistema, cerrá todo. - SEO poisoning en las búsquedas: los repos maliciosos aparecen primeros en Google para búsquedas como “Claude MCP server install”. El atacante optimiza la descripción y el README con términos populares para que su repo se posicione antes que el proyecto legítimo.
- Paquetes que generan errores con comandos sugeridos: si al instalar dependencias un paquete te tira un error diciendo “ejecutá tal comando para inicializar”, y ese comando no está documentado en el README original, sospechá. Especialmente si el comando incluye flags raras o llama a scripts que no podés inspeccionar fácilmente.
Qué hacer si ya abriste un repositorio comprometido
Si tenés la sensación de que clonaste y abriste algo que no debías, no te quedes paralizado. El peor error es asumir que “seguro no pasó nada”. Sobre eso hablamos en tal como explicamos en nuestra guía de ChatGPT.
Asumí que tus credenciales están comprometidas y rotá todo: tokens de AWS, Azure, GCP, npm y GitHub. Revisá el historial de commits en todos los repositorios donde tengas acceso de escritura —buscá cambios que no hiciste vos, especialmente archivos de configuración nuevos o modificados en las últimas horas. Buscá en tu cuenta de GitHub si apareció un repo creado recientemente con el nombre “Miasma: The Spreading Blight”.
Ejecutá un escaneo de seguridad en tu sistema local para detectar procesos o conexiones de red sospechosas. Si trabajás en una organización, contactá al equipo de seguridad ya —no esperes a confirmar el compromiso, porque para cuando lo confirmes las credenciales robadas ya van a estar en un repo público. StepSecurity mantiene una base de datos de paquetes comprometidos que podés integrar en tus pipelines CI/CD para detectar estas amenazas en el futuro.
Medidas de seguridad para desarrollar con agentes IA sin regalar el control
Los agentes de codificación son herramientas increíblemente útiles, pero tienen un problema de base: confían demasiado en los proyectos que procesan. No es un defecto del modelo, es un defecto de diseño en cómo se manejan las configuraciones de proyecto. Mientras los vendors corrigen esto del lado del producto —Anthropic ya trabaja en parches para CVE-2025-59536—, hay cosas que podés hacer hoy.
- Desactivá enableAllProjectMcpServers: en Claude Code, no permitas que cualquier proyecto active servidores MCP automáticamente. Configuralo para que te pida aprobación manual por cada servidor.
- Verificá la integridad de commits recientes antes de abrir un repo: un
git log --oneline -10y una revisión rápida de los autores y mensajes te puede salvar de un disgusto. - No confíes en carpetas automáticamente: el diálogo “Sí, confío en esta carpeta” es conveniente pero peligroso. Acostumbrate a revisar los archivos de configuración antes de aceptar.
- Rotá credenciales periódicamente y usá roles temporales: si un atacante roba un token que expira en una hora, el daño es mucho menor que si roba una clave de acceso permanente.
Si estás montando entornos de desarrollo en la nube para proyectos que usan agentes IA, considerar opciones de hosting cloud con snapshots y backups frecuentes te da una capa extra de seguridad: podés restaurar un entorno limpio en minutos si algo sale mal.
Qué está confirmado y qué no
Confirmado: Mozilla 0DIN demostró el ataque de DNS TXT con Claude Code funcionando en entorno controlado. El gusano Miasma comprometió repositorios de Microsoft usando credenciales robadas. CVE-2025-59536 tiene CVSS 9.8 y afecta a varias herramientas de codificación con IA. GitHub confirmó la desactivación de los repositorios de Miasma.
No confirmado: No hay evidencia pública de que el ataque de Mozilla 0DIN se haya usado en campañas reales fuera del laboratorio (aunque la técnica es replicable). Tampoco está claro si Miasma logró exfiltrar credenciales antes de que GitHub desactivara los repos, o si el tiempo de respuesta fue suficiente para contener el daño. Anthropic no publicó una fecha firme para el parche de CVE-2025-59536 al cierre de esta nota. Lo explicamos a fondo en en nuestro artículo sobre modelos de lenguaje.
Errores comunes al evaluar la seguridad de agentes de codificación
Creer que “sin código malicioso visible = seguro”. El punto central de estos ataques es que el código malicioso no está en el repositorio. Está en un DNS, en un archivo de configuración que el agente interpreta, o en un script que solo se ejecuta bajo condiciones específicas. Un grep buscando eval o exec no te va a salvar.
Confiar en que el sandbox del agente te protege. Ni Claude Code ni Gemini CLI ejecutan los servidores MCP en un sandbox aislado por defecto. La configuración enableAllProjectMcpServers justamente sortea cualquier aislamiento porque está diseñada para que los servidores interactúen con tu sistema de archivos y tu entorno.
Asumir que los repositorios de organizaciones grandes son seguros. Miasma comprometió repos de Microsoft, no de un desarrollador random. Los atacantes robaron credenciales y las usaron para inyectar el payload. La reputación del dueño del repo no es garantía de nada si las credenciales están comprometidas.
Preguntas Frecuentes
¿Cómo puede un repositorio limpio de GitHub ejecutar malware en agentes de IA?
El repositorio no contiene malware en su código fuente. El ataque funciona en tres pasos: un paquete Python genera un error de inicialización falso, el agente IA ejecuta automáticamente el comando sugerido para resolverlo, y ese comando consulta un registro DNS TXT controlado por el atacante que devuelve instrucciones maliciosas. Mozilla 0DIN demostró este vector con Claude Code.
¿Qué es el gusano Miasma y cómo afectó a Microsoft?
Miasma es un gusano que comprometió repositorios de GitHub de Microsoft (Azure, Azure-Samples, Microsoft, MicrosoftDocs) usando credenciales robadas. El payload de 4,3 MB usa un archivo binding.gyp de 157 bytes para evadir escáneres y se activa al abrir el proyecto en Claude Code, Gemini CLI, Cursor o VS Code, extrayendo credenciales multi-cloud. Relacionado: puedes leer más en la guía de Google.
¿Qué es la vulnerabilidad CVE-2025-59536?
Es una vulnerabilidad crítica (CVSS 9.8) descubierta por Adversa AI que permite ejecución remota de código al abrir un repositorio con archivos .mcp.json maliciosos en agentes de codificación como Claude Code. El diálogo de confianza por defecto activa servidores MCP sin sandbox, y parámetros como enableAllProjectMcpServers permiten que el atacante ejecute comandos arbitrarios con un solo clic.
¿Cómo evito que un agente de codificación IA ejecute código malicioso?
Desactivá enableAllProjectMcpServers en Claude Code, aprobá manualmente cada servidor MCP, revisá los commits recientes de cualquier repo antes de abrirlo, y rotá periódicamente tus credenciales cloud. No confíes automáticamente en carpetas de proyecto sin revisar los archivos de configuración que contienen.
Conclusión
Junio de 2026 va a quedar como el mes en que la comunidad de desarrollo entendió que los agentes de IA no son una herramienta más: son un nuevo vector de ataque. La seguridad que funcionaba para repositorios tradicionales —escanear el código, revisar dependencias, verificar firmas— no alcanza cuando el agente ejecuta comandos basándose en configuraciones que ningún humano revisa y en respuestas de DNS que ningún firewall bloquea.
La buena noticia es que las defensas son concretas y aplicables hoy: desactivar la ejecución automática de servidores MCP, verificar commits antes de clonar, rotar credenciales. La mala noticia es que esto es solo el principio. Mientras los agentes de IA sigan diseñados para “resolver problemas automáticamente” sin pedir confirmación granular, los atacantes van a seguir encontrando formas de definir cuál es el problema que el agente resuelve.
El consejo más práctico que te puedo dar: tratá a tu agente de codificación como tratarías a un pasante nuevo. Útil, rápido, pero no le darías las llaves de producción sin revisar lo que hace. Y si un repo te pide ejecutar un comando que no entendés del todo, cerrá la terminal y googlealo antes. Mejor perder cinco minutos que regalar las credenciales de AWS.
Fuentes
- BleepingComputer – Clean GitHub repo tricks AI coding agents into running malware
- WWWhat’s New – Miasma: el gusano que infectó 73 repositorios de Microsoft en GitHub
- Blog SIED – CVE-2025-59536: cómo un archivo JSON malicioso habilita RCE con un clic
- Alberto Pampín – GitHub y Claude: cómo detectar malware antes de instalar cualquier skill
