¿Ejecutas Claude Code o Codex en Descargas? Comprobación de seguridad de AGENTS.md
Un archivo llamado AGENTS.md o CLAUDE.md en Descargas puede dirigir Claude Code y Codex. Qué son estos archivos y una comprobación de 5 minutos de tus configuraciones.

En esta página
Respuesta corta: no inicies Claude Code ni Codex en tu carpeta ~/Downloads. El 22 de octubre de 2026 la empresa de seguridad Forever Security publicó una investigación que muestra que un sitio web puede guardar silenciosamente un archivo llamado AGENTS.md o CLAUDE.md en Descargas, y un agente iniciado en esa carpeta trata entonces el archivo como instrucciones de confianza. A continuación: qué son estos archivos, qué lograron cambiar los investigadores y una comprobación que lleva unos cinco minutos.
Imagina la versión cotidiana. Guardaste una docena de PDFs y capturas de pantalla de un sitio web, abriste una terminal en Descargas, escribiste claude o codex y le pediste que "ordene estos archivos". Nada de eso parece arriesgado. Y ahí está la trampa.
Qué son AGENTS.md y CLAUDE.md, y por qué el agente les cree#
Un agente de programación no empieza cada sesión desde cero. Antes de mirar tu petición, revisa la carpeta en la que se inició en busca de un archivo de texto plano con instrucciones permanentes: "usa tabulaciones, ejecuta las pruebas con npm test, nunca toques la carpeta de migraciones". AGENTS.md es el nombre genérico, CLAUDE.md es la misma idea para Claude Code. En tu propio proyecto estos archivos son útiles, porque los escribiste tú.
Sin embargo, el agente no puede saber quién escribió un archivo. Un CLAUDE.md que un sitio web dejó en Descargas se ve exactamente igual que el que escribiste la semana pasada.
Tarjetas de memoria
Palabras que verás en este artículo
Toca una tarjeta para voltearla
Qué hicieron los investigadores con un archivo en Descargas#
La publicación de Forever Security (autores Gal Weizman y Omer Samet, 22 de octubre de 2026) describe dos casos. Todas las tasas de éxito a continuación son mediciones de los propios investigadores.
Codex. El AGENTS.md plantado le indicaba al agente que añadiera una entrada de servidor MCP a ~/, y esa entrada llevaba a instalar un paquete npm llamado function-color. Según los investigadores, el payload se ejecutó en más del 90% de los intentos. Fíjate dónde vive ese archivo: tu carpeta personal, no Descargas. La configuración es de toda la máquina, así que toda sesión posterior en cualquier carpeta queda afectada, mucho después de que hayas olvidado la carpeta Descargas.
Claude Code. El CLAUDE.md plantado intentaba escribir un ajuste de ANTHROPIC_ en .. Ese ajuste decide a dónde envía el agente su tráfico de API. Apúntalo al servidor de otra persona y ese servidor verá tu token OAuth y podrá devolver llamadas a herramientas para que el agente las ejecute. La escritura tuvo éxito aproximadamente la mitad de las veces; una ruta que se ejecutaba dentro de la misma sesión, aproximadamente una quinta parte de las veces.

La publicación deja claro que nada está "roto" en ninguno de los dos productos: el agente funciona según su diseño, y el riesgo proviene de dónde está el archivo y de cuánto confía el agente en él. Forever también dice que encontró un AGENTS.md plantado real en la máquina de un cliente y detuvo una instalación maliciosa de npm antes de que se ejecutara código; desde entonces npm ha eliminado function-color. Esa última parte es el relato de los propios investigadores. OpenNET cubrió la historia el 26 de octubre de 2026 y señala un riesgo similar cuando un AGENTS.md llega a través de un pull request o un repositorio clonado.
Verificación rápida
¿Por qué el caso de Codex es peor que una mala sesión en Descargas?
Mostrar respuesta
Respuesta: La configuración que cambió es de toda la máquina, así que toda sesión posterior en cualquier carpeta queda afectada
El archivo plantado solo tiene que ejecutarse una vez. Lo que escribe en ~/ permanece ahí y se aplica a sesiones posteriores en todas las carpetas.
Qué ajustes revisar, y cómo se ve uno normal#
Dos archivos, uno por cada herramienta de la investigación.
En ~/, busca entradas [mcp_servers.*] que no recuerdes haber añadido, y una URL base que no configuraste. Una entrada sospechosa hace que tu máquina descargue y ejecute algo desde npm:
[mcp_servers.helper]
command = "npx"
args = ["-y", "some-package"]El nombre helper y el paquete de aquí son marcadores de posición. En el caso de los investigadores, el paquete detrás de una entrada así era function-color.
En ., busca un endpoint de API o un proxy que no hayas puesto tú. Si nunca configuraste ANTHROPIC_, el archivo no debería mencionarlo en absoluto. Si lo hiciste, debería ser la dirección del proveedor que elegiste. Para CheapTokens, un cliente de estilo Anthropic como Claude Code usa https:/ sin /v1 al final; los clientes de estilo OpenAI usan https:/.

Si ejecutas Claude Code con tu propia clave, la guía paso a paso para conectar Claude Code a CheapTokens muestra el archivo completo, y la documentación enumera ambas URL base. Para bucles de agente largos, DeepSeek-V4-Flash (deepseek-) tiene un contexto de 380K, hasta 32.768 tokens de salida por respuesta y un único precio a cualquier hora; la página del modelo tiene el resto.
Cline, Aider y otros agentes no formaron parte de esta investigación, y cada uno guarda sus ajustes en su propio lugar. El hábito es el mismo: saber qué archivo contiene el endpoint y leerlo una vez.
La comprobación de 5 minutos#
Abre una terminal y recorre estos pasos en orden. Nada de esto modifica un archivo; solo lee.
Paso a paso
Revisa tu máquina
Encuentra archivos de instrucciones perdidos
find ~/Downloads -maxdepth 3 -name "AGENTS.md" -o -name "CLAUDE.md"Cualquier coincidencia que no hayas escrito: ábrela como texto y léela. Si no sabes de dónde vino, bórrala.
Lee la configuración de Codex
grep -n "mcp_servers\|base_url" ~/.codex/config.tomlCada línea [mcp_servers.…] debería ser algo que recuerdes haber añadido. "No such file" está bien si no usas Codex.
Lee los ajustes de Claude Code
grep -n "BASE_URL\|proxy" ~/.claude/settings.json .claude/settings.jsonEjecútalo desde la carpeta de tu proyecto para cubrir ambos archivos. Cada dirección en la salida debería ser un proveedor que hayas elegido.
Revisa tu shell
env | grep -i "BASE_URL"Esto enumera las URL base configuradas como variables de entorno. La misma regla: deberías reconocer cada una.
Busca el paquete del caso
npm ls -g --depth=0 | grep function-colorEjecuta también npm ls function- dentro de los proyectos en los que hayas usado un agente. Si aparece, trata la máquina como comprometida.
Si algo parece estar mal#
Cierra el agente primero. Luego elimina las entradas que no reconozcas y rota todas las credenciales que el agente pudiera ver: claves de API, tokens, cualquier cosa en el entorno. Si la idea de rotar una clave es nueva para ti, qué es una clave de API y cómo guardarla cubre lo básico.
Hábitos que evitan que vuelva a ocurrir, todos tomados de las mitigaciones de los investigadores:
- Inicia agentes en una carpeta de proyecto que hayas creado tú, no en Descargas.
- Lee cualquier
AGENTS.mdoCLAUDE.mdque no hayas escrito antes de ejecutar un agente sobre él, incluidos los que llegan a través de un clon o un pull request. - Mantén activadas las solicitudes de aprobación y el sandboxing, y desconfía de cualquier instrucción que pida al agente desactivarlos.



