Um ficheiro AGENTS.md nas Transferências pode sequestrar o Codex e o Claude Code

25.10.2026 4 min 5

Um ficheiro AGENTS.md deixado na pasta Transferências de um cliente mandou o agente de programação com IA que ali corria instalar um pacote npm malicioso, revelou a empresa Forever Security a 22 de outubro. Nos seus próprios testes, o mesmo truque levou o Codex da OpenAI a executar o comando do atacante em mais de 90% das tentativas.

Agentes de código como o Codex e o Claude Code leem os ficheiros de instruções da pasta onde são iniciados e tratam-nos como regras de trabalho. Os navegadores guardam por defeito as transferências nessa mesma pasta, e muitos arrancam os agentes a partir daí. Segundo a Forever, cerca de metade dos seus clientes inicia um agente de código na pasta Transferências, e só o Claude Code abriu ali mais de 1300 sessões nos computadores deles.

Como o AGENTS.md plantado sequestrou o agente

O ficheiro tinha 13 KB e parecia um guia de desenvolvimento comum. Perto do fim, apresentava uma instalação como preparação das ferramentas antes da tarefa do utilizador: a do pacote function-color. A monitorização da Forever bloqueou a instalação antes de o código correr, e o pacote foi entretanto removido do npm. Os investigadores não conseguiram apurar como o ficheiro chegou ao computador. Mostraram, porém, que uma página web pode guardar sem perguntar um ficheiro chamado AGENTS.md na pasta Transferências: o Chrome, o Edge e o Firefox guardam ali por defeito e só mostram uma notificação, enquanto o Brave pediu autorização nos testes.

Depois, Gal Weizman e Omer Samet reproduziram o ataque numa máquina virtual. No Codex, o ficheiro pedia ao agente que acrescentasse um servidor MCP em ~/.codex/config.toml, a configuração global de todas as sessões do Codex no computador, para que o comando do atacante arrancasse em cada início. Com uma carga inofensiva que abria a calculadora, funcionou em mais de 90% das tentativas.

Para o Claude Code, escreveram um CLAUDE.md que pedia ao agente para apontar as definições do projeto para um suposto gateway interno. Assim que o Claude fazia a alteração, os seus pedidos à API seguiam para o servidor dos investigadores juntamente com o token OAuth do utilizador. Esse servidor podia responder no lugar do modelo e enviar comandos ao agente, o que permitiu executar código em cerca de metade dos testes. Através de um subagente, a execução na mesma sessão resultou em cerca de uma vez em cada cinco.

Nada para os fabricantes corrigirem

«Não há aqui nada que a OpenAI ou a Anthropic tenham de corrigir», escrevem os investigadores. Um agente que segue o AGENTS.md da sua pasta faz exatamente aquilo para que foi criado, por isso o risco está no sítio onde é iniciado. A OpenAI e a Anthropic recomendam iniciar os agentes a partir da pasta do projeto, e nenhuma das empresas comentou o estudo. Em agosto, outra falha do Claude Code permitiu que uma issue no GitHub chegasse aos segredos do CI, e os dois casos assentam no mesmo problema: o agente não distingue as instruções do utilizador do texto que apenas lê.

O que verificar no Codex e no Claude Code

  • Pasta de trabalho: inicie os agentes na raiz de um projeto concreto, não na pasta Transferências nem na pasta pessoal.
  • Ficheiros de instruções: leia qualquer AGENTS.md ou CLAUDE.md que não tenha escrito antes de um agente o usar.
  • Codex: procure em ~/.codex/config.toml blocos [mcp_servers.*] desconhecidos ou um chatgpt_base_url alterado.
  • Claude Code: verifique no .claude/settings.json do projeto se aparece um endereço de API inesperado, como ANTHROPIC_BASE_URL.
  • Confirmações: mantenha ligados os pedidos de confirmação e a sandbox, e desconfie de qualquer ficheiro que peça ao agente para os desligar.

Se um agente pode já ter seguido um ficheiro destes, apagá-lo não chega: as definições que o agente alterou continuam lá. Remova-as à mão e substitua os seus tokens, porque um token que vazou funciona como uma sessão iniciada. Segundo a Forever, se o function-color aparecer entre os pacotes instalados, o computador deve ser considerado comprometido.

claude codecodexopenaianthropicagentes de iainjeção de promptmalwarenpmforever securitycadeia de fornecimentocibersegurançanavegador

Leia também