PMPA: ataque envenena a memória persistente de agentes e sobrevive entre sessões no Claude Code e no OpenClaw
Pesquisadores apresentaram o PMPA (Persistent Memory Poisoning Attack), uma técnica que injeta instruções maliciosas em fontes externas aparentemente benignas para induzir um agente a gravá-las em sua própria memória persistente, de onde elas voltam a ser executadas em sessões futuras. Testado contra o OpenClaw e o Claude Code, o ataque atingiu taxas médias de injeção de 73,7% e 66,9%, respectivamente, com taxa de sucesso entre sessões de até 81,7% no Claude Code, preservando o desempenho do agente em tarefas legítimas.
A arquitetura de "harness" que hoje sustenta a maioria dos agentes de LLM combina memória, uso de ferramentas e controle de execução em runtime, permitindo que o agente lembre de preferências, contexto de projetos e instruções entre sessões diferentes. O PMPA explora exatamente essa conveniência: em vez de tentar um ataque de prompt injection que precisa funcionar dentro de uma única sessão, os autores embutem instruções maliciosas em fontes externas benignas — um arquivo, uma página, um resultado de busca — que o agente processa normalmente, e o objetivo do ataque é induzir o próprio agente a decidir gravar essas instruções em sua memória persistente, sem que o atacante precise ter qualquer acesso direto ao framework do agente ou às credenciais da vítima.
Uma vez que a instrução maliciosa está armazenada, ela deixa de depender do vetor de entrada original: em sessões futuras, quando o agente recupera contexto da memória para decidir a próxima ação, a instrução envenenada é lida como se fosse uma preferência ou configuração legítima do usuário, disparando ações maliciosas adicionais e potencialmente vazando dados privados coletados ao longo dessas sessões subsequentes. Isso transforma um ataque pontual em algo com efeito duradouro, análogo a um implante persistente em um sistema tradicional, mas operando inteiramente através de texto interpretado pelo modelo.
Os números reportados são relevantes porque os sistemas testados não são protótipos acadêmicos, e sim frameworks de agente amplamente usados: no OpenClaw, a taxa de sucesso de injeção chega a 73,7%, com 55,5% de sucesso quando o ataque precisa sobreviver e disparar em uma sessão posterior; no Claude Code, a taxa de injeção é de 66,9%, mas a taxa de sucesso entre sessões sobe para 81,7%, sugerindo que, uma vez que a instrução entra na memória persistente desse sistema, ela tem chance ainda maior de ser efetivamente reativada depois. Em ambos os casos, o desempenho do agente em tarefas benignas se mantém, o que dificulta a detecção do comprometimento por simples observação de qualidade de output.
Os autores avaliam uma defesa em nível de prompt e concluem que ela reduz a taxa de injeção inicial em vários cenários, mas oferece proteção limitada depois que a memória já foi envenenada — ou seja, o ponto de intervenção mais eficaz é impedir a escrita da instrução maliciosa na memória, não tentar neutralizá-la depois que ela já está lá. Isso é uma mudança de perspectiva importante para quem projeta política de acesso a memória persistente em agentes de codificação e assistentes de uso geral: o controle de escrita em memória precisa ser tratado com o mesmo rigor que se dá a permissões de execução de ferramentas.