Un archivo de instrucciones malicioso situado en la carpeta Descargas de un desarrollador intentó que su agente de programación con IA instalara un paquete npm conocido por ser malicioso, según un informe publicado la semana pasada por la firma de seguridad Forever Security.
La empresa detectó el intento en el equipo de un cliente real y detuvo al agente antes de que se ejecutara ningún código. No pudo determinar cómo había llegado el archivo a esa carpeta.
El archivo era AGENTS.md, un fichero de instrucciones en texto plano que un agente de programación, como Codex de OpenAI, lee al iniciarse en una carpeta y sigue como si fueran directrices. Estaba camuflado como notas de ingeniería corrientes. Una sección indicaba al agente que añadiera un servidor a su propia configuración e instalara un paquete llamado function-color desde npm.
Ese paquete forma parte de una campaña de malware documentada por otros investigadores: function-color descarga un componente llamado function-flag, que a su vez obtiene y ejecuta una carga útil para Windows. Los investigadores de CloudSEK y Checkmarx, que analizaron la campaña, la denominaron MALFEX.
Según Forever, el ataque funciona gracias a dos elementos que, por separado, son inofensivos. Por un lado, un agente está diseñado para confiar y obedecer el archivo de instrucciones de la carpeta que abre. Por otro, una página web puede guardar un archivo en la carpeta Descargas por sí sola, sin clic ni aviso de permiso, eligiendo el nombre y el contenido. Combinados, una página web puede colocar un archivo que el agente tratará como órdenes en una carpeta en la que el agente confía.
Los investigadores no pudieron confirmar que esta fuera la vía por la que se introdujo el archivo. Para comprobar si el camino completo era posible, crearon su propia página de prueba de concepto: al visitarla, un AGENTS.md se descarga silenciosamente en Descargas. No se sabe si un atacante real utilizó esa ruta contra el cliente.
La empresa reprodujo después el ataque en dos agentes de programación para demostrar que no es específico de un solo producto. Contra Codex, ejecutó el archivo real del atacante dentro de una máquina virtual aislada. El archivo, presentado como una configuración rutinaria del proyecto, indicaba a Codex que registrara un servidor en ~/.codex/config.toml y ejecutara un comando que instalaba el paquete.
Dado que ese archivo de configuración se aplica a todas las sesiones de Codex en la máquina, el cambio haría que el servidor del atacante se cargara en cualquier carpeta posteriormente, no solo en Descargas. Codex ejecutó el malware en más del 90 % de los intentos, según Forever.
Contra Claude Code, el ataque exitoso fue distinto y tuvo menos éxito. Un CLAUDE.md plantado, presentado como configuración interna de una pasarela, intentaba que Claude escribiera un ANTHROPIC_BASE_URL en un archivo de configuración del proyecto, redirigiendo su tráfico de API a un servidor controlado por Forever. Ese único cambio filtra el token de sesión, lo que por sí solo supone la toma de control de la cuenta, y permite al servidor responder como si fuera el modelo y devolver comandos que el agente ejecuta.
Claude requiere que una persona apruebe una escritura de ese tipo y a menudo rechaza las que parecen sospechosas; el formato de documento técnico extenso logró que la escritura se aprobara aproximadamente la mitad de las veces, según los investigadores.
En opinión de Forever, no hay nada que OpenAI o Anthropic puedan parchear, porque un agente que sigue el archivo de instrucciones de su carpeta está haciendo aquello para lo que fue diseñado. La empresa lo comparó con un navegador que muestra una página de phishing: el navegador funcionó según lo previsto y el ataque reside en la página.
No hay nada aquí que OpenAI o Anthropic puedan parchear.
Qué hacer
El consejo de Forever es práctico y no requiere ningún producto:
- No iniciar Codex, Claude Code ni ningún agente en ~/Downloads. Es la única carpeta en la que la web puede escribir por sí sola.
- Buscar archivos de instrucciones que uno no haya escrito. Un AGENTS.md o CLAUDE.md abandonado, en Descargas o en un repositorio recién clonado, constituye todo el ataque. Leerlo antes de permitir que un agente se acerque a él.
- Revisar la configuración del propio agente. En ~/.codex/config.toml, vigilar un bloque de servidor o una URL base modificada que no se haya añadido. En el .claude/settings.json de un proyecto, vigilar un ANTHROPIC_BASE_URL u otro punto de conexión de API que no se haya configurado.
- Mantener activados los avisos de aprobación y los entornos aislados, y desconfiar de cualquier cosa que indique al agente desactivarlos.
- Si se encuentra un archivo plantado, asumir que el token de sesión se ha filtrado y renovarlo. Un token robado es una sesión activa, no solo una petición interceptada.
En sus propios datos de telemetría, Forever señala que alrededor de la mitad de sus clientes ejecutan un agente de programación en su carpeta Descargas y que aproximadamente una cuarta parte de las sesiones de agente abren un navegador. Esas son las condiciones que necesita el ataque: que un agente se inicie donde la web puede escribir y que, en muchos casos, sea el propio agente el que navegue, de modo que nadie vigile cuando llega un archivo.


















Deja una respuesta