TBN Grow
Seguridad de agentes de IA de programación: AGENTS.md engaña a Codex

Seguridad de agentes de IA para programar: un AGENTS.md en Descargas hace que Codex y Claude Code obedezcan al atacante. Datos, costes, riesgos y checklist.
Noticia
La seguridad de agentes de IA para programar acaba de sumar una lección muy concreta. El 22/10/2026, la empresa de ciberseguridad Forever Security informó de que había detenido a un agente de IA de programación que estaba instalando el paquete npm malicioso function-color en el equipo real de un cliente. El agente no fue "hackeado" en el sentido habitual: simplemente siguió un archivo de texto llamado AGENTS.md que estaba en la carpeta ~/Downloads, donde el desarrollador había abierto el agente. Entre el 25 y el 26/10, The Hacker News y otros medios tecnológicos recogieron la noticia junto con los resultados de las pruebas en OpenAI Codex y Anthropic Claude Code.
- El archivo de instrucciones es una entrada de confianza para el agente. Codex lee
AGENTS.mdy Claude Code leeCLAUDE.mden la carpeta de trabajo, y los trata como instrucciones del proyecto. El archivo malicioso estaba redactado como notas técnicas normales, pero pedía al agente añadir un servidor desconocido a su configuración e instalar el paquetefunction-color. - El navegador puede escribir en Descargas. Según Forever, una página web puede guardar por sí sola un archivo llamado
AGENTS.mdcon el contenido que quiera en Descargas sin que el usuario haga clic. El sistema operativo bloquea los ejecutables descargados (.exe, .app), pero no los archivos de texto, porque hasta ahora eran inofensivos. - Codex: obedeció en más del 90% de los intentos. Al reproducir el archivo malicioso real en una máquina virtual aislada, Codex instaló el malware en "más del 90%" de los intentos. El cambio se hace en
~/.codex/config.toml, el archivo de configuración común a todas las sesiones de Codex del equipo, así que el servidor del atacante se vuelve a cargar en cualquier carpeta a partir de ese momento. - Claude Code: alrededor del 50%. Con un
CLAUDE.mddisfrazado de guía de configuración de un "gateway interno", Claude escribió en.claude/settings.jsonunANTHROPIC_BASE_URLque apuntaba al servidor del atacante aproximadamente la mitad de las veces. El resultado es la filtración del token de sesión; el equipo de investigación reutilizó el token capturado para llamar a la API real. - No hay parche que esperar. Forever sostiene que ni OpenAI ni Anthropic tienen un fallo que corregir: el agente hace lo que está diseñado para hacer, que es leer el archivo de instrucciones de la carpeta. La vulnerabilidad surge al combinar una carpeta en la que la web puede escribir con una carpeta en la que el usuario confía.
| Parámetro | Valor | Nota |
|---|---|---|
| Fecha de publicación de la investigación | 22/10/2026 | Forever Security (Gal Weizman, Omer Samet) |
| Paquete npm malicioso | function-color → arrastra function-flag | Campaña MALFEX, según Checkmarx; solo ataca Windows |
| Codex siguió el archivo malicioso | Más del 90% de los intentos | Según Forever; no indica número de ejecuciones ni versión |
| Claude Code escribió la configuración maliciosa | Alrededor del 50% de los intentos | Según Forever; se negó siempre cuando la carpeta tenía notas de seguridad |
| Claude Code ejecutó comandos en la misma sesión | Alrededor de 1/5 de los intentos | Cuando Claude creó un subagente, según Forever |
| Clientes que ejecutan agentes en Descargas | Alrededor de la mitad | Datos medidos entre clientes de Forever, según la empresa |
| Sesiones de agente que abren un navegador real | Alrededor de 1/4 | Según Forever |
| Descargas totales de los 8 paquetes MALFEX | 40.767 (solo function-flag: 37.419; function-color: 300) | Según Checkmarx, datos hasta el 01/10/2026; las descargas no equivalen a equipos infectados |
Análisis
Análisis: ¿por qué un simple archivo de texto es peligroso para un agente de IA de programación?
La clave de este caso es que la frontera entre "datos" y "órdenes" se ha difuminado. Para un editor de texto, AGENTS.md no es más que texto. Para un agente de IA con permiso para ejecutar comandos de shell, modificar configuraciones e instalar paquetes, ese mismo archivo se convierte en una lista de tareas. Forever tituló su investigación "Markdown es el nuevo ejecutable", y técnicamente la afirmación tiene fundamento.
¿En qué se diferencia de los ataques conocidos?
| Tipo de ataque | Qué tiene que hacer el usuario | Protección existente | Nivel de bloqueo |
|---|---|---|---|
| Descargar un .exe/.app malicioso | Abrirlo y aceptar el aviso | SmartScreen, Gatekeeper, antivirus | Alto: el sistema bloquea archivos sin firmar |
| Paquete npm con nombre falso (typosquatting) | Escribir mal el nombre al instalar | Avisos de npm, escáneres de dependencias | Medio: function-flag no tenía aviso oficial (según Checkmarx) |
| Prompt injection mediante README/issue | Pedir al agente que lea contenido externo | El agente puede desconfiar del contenido ajeno | Medio |
AGENTS.md/CLAUDE.md en Descargas | Basta con abrir el agente en esa carpeta | Diálogo de confianza de carpeta, aprobación de comandos | Bajo si el usuario se ha acostumbrado a pulsar "aceptar" |
La diferencia está en la segunda columna. Los tres primeros requieren que el usuario se equivoque en un paso concreto. El cuarto aprovecha un hábito muy extendido: descargar un repositorio o un zip en Descargas y abrir allí mismo el agente "para echar un vistazo". Según los propios datos de Forever, alrededor de la mitad de sus clientes tiene a alguien que ejecuta agentes en Descargas.
Mecanismo: ¿qué pasos sigue el ataque?
La cadena de ataque tiene cuatro eslabones que cualquier ingeniero puede visualizar:
1. Escritura del archivo: una página web descarga automáticamente AGENTS.md en Descargas. Forever construyó una página de prueba que lo consigue; todavía no sabe por qué vía llegó el archivo real al equipo del cliente.
2. Carga del contexto: al arrancar en la carpeta, el agente lee el archivo de instrucciones y lo incorpora a su contexto con un nivel de confianza mayor que el contenido web.
3. Cambio persistente de configuración: en Codex, el archivo pide añadir un bloque [mcp_servers.*] (servidor de herramientas MCP) a ~/.codex/config.toml. En Claude Code, pide fijar ANTHROPIC_BASE_URL en .claude/settings.json, de modo que todas las peticiones a la API pasan por el servidor del atacante.
4. Ejecución: el servidor falso devuelve comandos para que el agente los ejecute, o el agente instala directamente function-color; este paquete arrastra function-flag, que descarga y ejecuta un ejecutable de Windows.
El paso 3 es el más peligroso a largo plazo. Si se modifica la configuración global, borrar el archivo AGENTS.md no basta: el servidor desconocido se sigue cargando en las sesiones siguientes.
¿Por qué Codex y Claude Code dan resultados distintos?
La diferencia entre más del 90% y alrededor del 50% no debe leerse como "este agente es más seguro que aquel". Las dos pruebas usaron archivos y objetivos distintos: en Codex se reprodujo el archivo malicioso real, mientras que en Claude Code se usó un archivo escrito por el propio equipo de investigación. Forever también enumera cinco controles de Codex que hubo que sortear, entre ellos el diálogo de confianza y el sandbox de red (con la opción --dangerously-bypass-approvals-and-sandbox). El artículo no aclara en qué configuración se midió el "más del 90%". En Claude Code, Forever observó que Claude suele pedir aprobación antes de escribir en la configuración y que se negó en todos los casos cuando la carpeta contenía notas de seguridad. Por tanto, el resultado depende mucho de la configuración de aprobaciones y del contenido de la carpeta, no solo del modelo.
Impacto por grupos
- Desarrolladores individuales: el mayor riesgo es la filtración del token de sesión. Un token filtrado es una sesión todavía válida; el atacante puede consumir la cuota de tu cuenta o leer los datos a los que accede el agente.
- Equipos técnicos y responsables de ingeniería: la configuración del agente está fuera del repositorio (
~/.codex/config.toml), así que no pasa por la revisión de código. Un equipo con la configuración alterada puede subir código problemático al repositorio común sin que nadie vea ningún cambio en Git. - Pymes, también en Vietnam y Latinoamérica: muchos equipos externalizados o freelancers trabajan con portátiles personales y suelen descargar el código del cliente en Descargas. Sin herramientas de gestión centralizada de dispositivos, revisar la configuración de los agentes depende casi por completo de cada persona.
- Marketers y perfiles no técnicos: cada vez más personas usan Codex o Claude Code para crear landing pages o scripts de tratamiento de datos. Este grupo rara vez lee archivos
.mddesconocidos y tiende a pulsar "aceptar" en cualquier solicitud de aprobación.
¿Cuál es el coste real?
No se han publicado cifras de daños reales, así que la tabla solo compara el coste de prevención con el de gestionar un incidente, con supuestos de TBN Grow para un equipo de 20 desarrolladores.
| Partida | Supuesto | Estimación |
|---|---|---|
| Revisión periódica de la configuración del agente | 10 minutos/persona/mes × 20 personas | Unas 3,3 horas-persona/mes |
Escribir un script que revise config.toml y settings.json | 1 ingeniero, una sola vez | Unas 4 horas-persona |
| Gestionar un equipo infectado | Aislarlo, reinstalar, rotar todos los tokens, revisar repositorios | 1–3 días-persona de 1–2 personas |
| Revisar el código subido desde el equipo infectado | Releer los commits del periodo de infección | Según el número de commits; puede ser varios días-persona |
Con estos supuestos, la prevención cuesta menos de 4 horas-persona al mes, mientras que un solo incidente puede costar muchas veces más, sin contar el riesgo de filtrar datos de clientes. La comparación es solo ilustrativa; el coste real depende del tamaño del equipo y del tipo de datos.
Riesgos y límites de la investigación
- Un incidente, muchas pruebas. La única evidencia fuera del laboratorio es un caso en el equipo de un cliente, bloqueado antes de que se ejecutara el código. No hay informes públicos de daños reales.
- Vía de entrada desconocida. Forever demuestra que una web *puede* escribir archivos en Descargas por sí sola, pero no sabe si el atacante real usó ese método.
- Quien publica vende la solución. Forever comercializa un producto de monitorización de agentes, así que tiene incentivos para destacar el riesgo. Eso no invalida los datos, pero requiere verificación independiente.
- Faltan detalles metodológicos: el artículo no indica el número de ejecuciones ni las versiones de Codex y Claude Code probadas.
- El malware solo ataca Windows (según Checkmarx), pero la filtración del token en Claude Code no depende del sistema operativo.
Puntos por verificar
- Las cifras de "más del 90%" y "alrededor del 50%" proceden de una sola fuente (Forever); The Hacker News y otros medios solo las reproducen. Ningún laboratorio independiente ha repetido las pruebas.
- OpenAI y Anthropic no han respondido públicamente en las noticias que TBN Grow ha consultado.
- Puedes revisar tu equipo ahora mismo: abre
~/.codex/config.tomly busca bloques[mcp_servers.*]desconocidos o unchatgpt_base_urlmodificado; busca en todos los.claude/settings.jsonuna líneaANTHROPIC_BASE_URLque no hayas puesto tú; comprueba sifunction-colorofunction-flagaparecen ennode_moduleso en el historial de instalaciones.
Valoración de TBN Grow
No es una vulnerabilidad exclusiva de Codex o Claude Code, sino la consecuencia lógica de dar a un agente permiso para trabajar en nuestro lugar: cualquier archivo que lea puede convertirse en una orden. Los equipos que ejecutan agentes en modo sin aprobaciones deberían endurecer la configuración esta misma semana. Los que usan agentes con aprobaciones siguen necesitando el hábito de leer los archivos de instrucciones desconocidos antes de abrir el agente. No conviene esperar un parche, porque según el propio equipo de investigación no hay ninguno que esperar.
Qué observar
Qué vigilar en la seguridad de agentes de IA para programar
Qué puedes hacer ya (checklist)
- No abras agentes de IA en `~/Downloads`. Mueve el código a una carpeta de proyecto propia antes de ejecutar el agente.
- Lee todo `AGENTS.md` o `CLAUDE.md` que no hayas escrito tú, incluidos los de repositorios recién clonados. Desconfía de cualquier petición de añadir servidores, cambiar la dirección de la API o instalar paquetes desconocidos.
- Revisa la configuración:
~/.codex/config.toml(bloques[mcp_servers.*],chatgpt_base_url) y.claude/settings.json(ANTHROPIC_BASE_URLu otras direcciones de API extrañas). - Mantén activadas las aprobaciones y el sandbox. No uses opciones que omitan las aprobaciones en equipos con datos reales; desconfía de cualquier instrucción que pida desactivarlas.
- Si encuentras un archivo extraño, da el token por filtrado: cierra sesión, emite un token nuevo, cambia las claves de API relacionadas y revisa los commits recientes.
- Para equipos técnicos: incluye la revisión de la configuración de agentes en la lista mensual de control de dispositivos y deja por escrito la norma "no ejecutar agentes en Descargas" en la documentación interna.
Fechas clave y lo que aún no se ha publicado
- 22/10/2026: Forever publica la investigación. 05–06/10/2026: Checkmarx y otros medios de seguridad publican la campaña MALFEX, con 8 paquetes npm maliciosos.
- OpenAI y Anthropic no han respondido oficialmente; conviene seguir las notas de versión de Codex y Claude Code sobre cómo tratan los archivos de instrucciones en carpetas no confiables.
- No está claro qué navegadores permiten descargar archivos
.mdautomáticamente sin preguntar, ni si los fabricantes de navegadores cambiarán este comportamiento. - No hay pruebas independientes en otros agentes (Cursor, Gemini CLI, Copilot). El mecanismo de lectura de archivos de instrucciones es similar, así que es probable que el riesgo no se limite a los dos productos probados.
Más lecturas: por qué dos agentes de IA de OpenAI desactivaron su propia supervisión interna y las 12 prácticas del FSB para gobernar agentes de IA.
Los 10 riesgos de OWASP y una checklist de 90 días para empresas están en nuestra visión general para implantar agentes de IA con seguridad.
Fuentes verificadas: Forever Security – Markdown Is the New Executable, The Hacker News, Checkmarx – campaña MALFEX, eSecurity Planet.
