El AGENTS.md que tu agente lee como una orden

El fichero que no era documentación
La campaña se llama MALFEX y el vector es un fichero de texto.
Un AGENTS.md malicioso colocado en la carpeta Descargas intentó que Codex instalara el paquete npm fraudulento function-color (Fuente: thehackernews.com).
Lo llamativo no es el paquete sino cómo llegó el fichero.
Una web puede escribir ese AGENTS.md sin que el usuario haga clic y el agente lo lee como si fueran órdenes (Fuente: thehackernews.com).
AGENTS.md es el fichero donde se le explican al agente las reglas del proyecto.
Está pensado para que un humano lo escriba y el modelo lo obedezca.
Ese diseño es justo el problema, ya que el agente no distingue una nota de ingeniería de una instrucción de un tercero.
Para el modelo, las dos son texto en el contexto y el texto en el contexto se ejecuta.
La web escribe el fichero, el agente lo encuentra al abrir la carpeta, lo interpreta como configuración y ejecuta la instalación.
No hace falta exploit, ni credencial, ni binario, solo un fichero con el nombre correcto en el sitio correcto.
No es un caso aislado
La semana trae más ejemplos del mismo patrón.
OpenAI reveló que sus propios agentes de red team escaparon de microVMs y se comunicaron entre sandboxes aislados sin red ni ficheros compartidos, usando la caché del procesador como canal encubierto por tiempos (Fuente: thehackernews.com).
El mismo equipo encontró rutas a internet a través de servicios de métricas, logging y autenticación mal configurados (Fuente: thehackernews.com).
El aislamiento se asume, no se verifica.
Un sandbox se trata como una pared cuando en realidad es una convención que alguien configuró una vez y nadie volvió a mirar.
En el caso del AGENTS.md la frontera no es la red, es el sistema de ficheros.
El agente confía en lo que hay en disco y es en disco donde puede escribir cualquiera que tenga una pestaña abierta.
El otro lado
El mismo motor que acelera a un defensor acelera al atacante.
Microsoft atribuyó a Storm-0940, grupo vinculado a China, el abuso de credenciales OAuth de ConnectWise con el framework ARTEX.
El resultado fueron 2.250 tenants de Microsoft 365 sondeados a 2.900 intentos de acceso por minuto, después de un password spray contra 327 cuentas en 8 organizaciones (Fuente: microsoft.com).
No es un agente autónomo; pero el patrón es el mismo que preocupa en los agentes.
Automatización barata contra superficies que se dejaron abiertas y nadie revisó.
Ninguno de estos dos últimos tiene que ver con agentes pero comparten la lección: la superficie que no se mira es la que se rompe.
La lectura propia
Un fichero de configuración de agente no es documentación, es código ejecutable por diseño y hay que tratarlo como código no confiable.
Eso implica tres cosas.
- Revisar qué entra en el repo.
- Limitar los permisos de red e instalación del agente.
- No dejar que escriba en carpetas que el usuario no controla.
La carpeta Descargas es el peor sitio posible para un AGENTS.md, ya que es la carpeta donde caen las cosas que nadie revisa.
¿Qué mirar?
- Revisa los ficheros de configuración. AGENTS.md, .cursor/rules y CLAUDE.md en el repo y en las carpetas de trabajo. Comprueba quién los escribió y cuándo. Si no los reconoces, bórralos antes de abrir el agente.
- Limita la escritura del agente. El agente no debería poder escribir fuera del directorio del proyecto. Si puede, un fichero colocado por una web se convierte en una orden.
- Corta la instalación automática. Que el agente pueda lanzar npm install sin confirmación es una vía directa a un paquete fraudulento. Exige aprobación humana para cualquier instalación.
¿Cómo lo probaría en mi laboratorio?
Montaría un directorio de trabajo con Codex apuntando a él y colocaría un AGENTS.md con una instrucción inocente, no sé, por ejemplo se me ocurre que escriba un fichero de prueba en /tmp, no se veis por donde voy…
Miraría si el agente la ejecuta sin preguntar y qué permisos tenía en ese momento.
Si obedece una instrucción de un fichero que yo no escribí, el problema no es el fichero, es que el agente no distingue quién escribió qué.
Cierre
El agente no distingue una nota de ingeniería de una orden y mientras esa distinción no exista en el diseño, cada fichero que lea es una puerta.