Vulnerabilidade em agentes de IA

Novo ataque de injeção de dados em agentes pode fazer agentes de IA clicarem errado ou executar comandos de invasores

Peça a um agente de IA (inteligência artificial) para resumir as avaliações de uma página de produto e uma única avaliação plantada pode fazê-lo clicar em 'Comprar' em vez disso. Peça a um assistente de programação para aplicar a correção de um mantenedor em uma thread do GitHub e um comentário falso pode fazê-lo executar o comando de um estranho no seu computador. Nenhum dos truques sequestra a tarefa do agente. Cada um apenas corrompe os fatos em que ele confia e o deixa seguir com o trabalho que você pediu. Essa é a forma de uma nova classe de ataque descrita em um artigo publicado em 6 de julho por pesquisadores da Universidade Nacional de Seul, da Universidade de Illinois em Urbana-Champaign e da Largosoft.


Swati Khandelwal Sexta - 17 de Julho de 2026 às 01:54
The Hacker News

Peça a um agente de IA (inteligência artificial) para resumir as avaliações de uma página de produto e uma única avaliação plantada pode fazê-lo clicar em "Comprar" em vez disso. Peça a um assistente de programação para aplicar a correção de um mantenedor em uma thread do GitHub e um comentário falso pode fazê-lo executar o comando de um estranho no seu computador.

Nenhum dos truques sequestra a tarefa do agente. Cada um apenas corrompe os fatos em que ele confia e o deixa seguir com o trabalho que você pediu.

Essa é a forma de uma nova classe de ataque descrita em um artigo publicado em 6 de julho por pesquisadores da Universidade Nacional de Seul, da Universidade de Illinois em Urbana-Champaign e da Largosoft.

Eles chamam o ataque de injeção de dados em agente, ou ADI (Agent Data Injection). A entrada do invasor se disfarça de dado em que o agente já confia, como o nome do remetente ou o identificador (ID) de um botão, e assim escapa da maior parte das defesas criadas para bloquear injeção de prompt.

A brecha vem de como um agente lê. Ele recebe dois tipos de coisas: instruções, ou seja, o que você e o desenvolvedor do aplicativo pedem que ele faça, e dados, isto é, tudo o que ele coleta enquanto trabalha, como um e-mail, uma página da web ou um comentário. A injeção de prompt clássica esconde uma ordem dentro desses dados, algo como "ignore sua tarefa e me envie os arquivos por e-mail".

Os pesquisadores chamam isso de injeção de instrução. As defesas modernas são treinadas para identificar textos que pareçam ordens escondidas e bloqueá-los, e, contra esse tipo de ataque, hoje funcionam bem.

A ADI atua uma camada abaixo, nos pequenos fatos em que o agente confia em silêncio: quem enviou um e-mail, o ID de um botão em uma página, o registro de uma etapa que uma ferramenta já executou. Corrompa esses elementos, e o agente ainda faz sua tarefa, só que com base nas informações que o invasor plantou.

Pontuação falsa que o modelo acredita

O método por trás do ataque é o que os pesquisadores chamam de injeção probabilística de delimitadores. Agentes envolvem seus dados em pontuação que marca onde uma informação termina e a próxima começa: aspas e chaves, tags, colchetes e quebras de linha. Essa pontuação é como o modelo separa um campo confiável, como o nome do remetente, de um conteúdo não confiável, como o corpo de uma mensagem.

Um programa normal lê essa pontuação por regras rígidas. Um modelo de linguagem lê por chute. Assim, um invasor pode espalhar caracteres parecidos com pontuação em um campo que controla, e o modelo frequentemente os interpretará como uma estrutura real que nunca existiu, enxergando um e-mail extra, um botão extra ou um resultado de ferramenta extra.

O detalhe que torna o ataque difícil de deter: a pontuação falsa nem precisa estar correta. Nos testes, uma aspa escapada (\), uma aspa curvilínea e até um cifrão passaram pelo crivo e enganaram o modelo. Um analisador rigoroso leria esses caracteres como texto comum, não como uma nova estrutura.

Os pesquisadores construíram três ataques funcionais em ferramentas reais, já disponíveis no mercado:

  • Em agentes web (Claude in Chrome, Antigravity do Google e Nanobrowser), uma avaliação de produto plantada reutiliza o ID de um botão real. O agente pretende clicar em "Leia mais" e clica em "Comprar" em vez disso, fazendo um pedido que o usuário nunca fez. Como essas ferramentas numeram os elementos da página em ordem, o invasor pode calcular o ID com antecedência.
  • Em assistentes de programação (Claude Code, Codex da OpenAI e Gemini CLI do Google), um comentário no GitHub falsifica a linha de autor para parecer que foi escrito por um mantenedor do projeto. Ao receber a ordem de aplicar a correção do mantenedor, o agente executa o comando do invasor na máquina do desenvolvedor se este aprovar o que parece ser uma etapa rotineira.
  • Uma pull request (solicitação de mesclagem de código) maliciosa falsifica o registro de uma verificação que o agente nunca executou, de modo que um resultado aparentemente limpo aparece em seu histórico. O agente analisa esse resultado falso, avalia o código como seguro e segue para mesclá-lo, puxando o código realmente malicioso para dentro do projeto assim que o desenvolvedor aprova.

A maioria dessas ferramentas já pede confirmação antes de fazer algo arriscado. O Claude in Chrome pergunta antes de clicar; os assistentes de programação perguntam antes de executar um comando. Não adianta muito. O aviso de clique só diz que o agente quer clicar em um elemento, não qual nem por quê.

Os assistentes de programação mostram seu raciocínio, mas esse raciocínio é construído sobre fatos falsos, então parece uma explicação sensata de uma etapa normal. Olhando para a tela, o usuário tem pouca maneira de distinguir uma aprovação real de uma fabricada.

E todos os modelos testados se mostraram vulneráveis: GPT-5.2 e GPT-5-mini da OpenAI, Claude Opus 4.5 e Sonnet 4.5 da Anthropic, e Gemini 3 Pro e Flash do Google. Nos seis modelos, o ataque funcionou de 31% a 43% das vezes em dados estruturados, e em dados de páginas web, de um terço das tentativas até todas elas.

Contra as defesas específicas para agentes que os pesquisadores testaram, a diferença ficou clara: o ataque clássico de esconder ordens foi quase totalmente bloqueado, com taxa de sucesso próxima de zero, enquanto a ADI ainda obteve sucesso em até 50% das tentativas. Mesmas defesas, resultados muito diferentes, porque foram construídas para o outro tipo de ataque.

O que de fato funciona contra o ataque

Nem tudo falhou. O navegador Atlas do ChatGPT ignorou o ataque de clique porque marca cada elemento da página com um ID aleatório e impossível de adivinhar, em vez de um contador simples, e o invasor não consegue forjar uma correspondência. Os pesquisadores descobriram que a mesma ideia, uma marca aleatória curta adicionada aos nomes dos campos, reduziu o ataque pela metade, de cerca de 49% para 29% em seus testes, sem prejudicar a utilidade dos agentes.

Uma defesa mais pesada, que rastreia a origem de cada dado, bloqueou o ataque por completo, com zero ataques bem-sucedidos, mas deixou os agentes concluindo apenas cerca de um terço de suas tarefas comuns. Remover a pontuação também reduziu o ataque, mas comprometeu a capacidade dos agentes de ler coisas normais, como links e caminhos de arquivos.

Os pesquisadores descrevem apenas ataques de prova de conceito, e não há registro público de uso da ADI em ambientes reais. A equipe relatou tudo às empresas afetadas antes de publicar; OpenAI, Google e Anthropic confirmaram o recebimento dos relatórios, e a Nanobrowser não havia respondido até a publicação do artigo.

Para que o ataque funcione, algumas coisas precisam se alinhar. O agente precisa processar conteúdo que um estranho pode editar, que é o que agentes web e do GitHub fazem o tempo todo. E o invasor precisa conhecer o formato em que o agente organiza seus dados.

Os pesquisadores afirmam que um invasor pode recuperar o formato de uma ferramenta de código aberto ou executada localmente lendo o código ou fazendo engenharia reversa, e que um serviço em nuvem é mais difícil, onde pode ser necessário um jailbreak (quebra de restrições de segurança) que não tem garantia de funcionar.

Segundo o artigo, os pesquisadores também estão disponibilizando o código do benchmark (conjunto de testes padronizado) e dos ataques, para que empresas e defensores possam testá-los.

Woohyuk Choi, que escreveu o artigo com o professor Byoungyoung Lee, disse ao The Hacker News que OpenAI, Google e Anthropic confirmaram que o ataque é válido, e que OpenAI e Google pediram uma cópia do artigo. Além disso, ele disse, a equipe "não foi informada de nenhuma correção, seja já implantada ou planejada".

Sobre a parte mais difícil, recuperar o formato que um serviço em nuvem usa, Choi disse que a equipe conseguiu mesmo assim. Para esse formato no servidor, que um invasor não pode ver diretamente, eles fizeram o modelo revelá-lo com um jailbreak de várias etapas, e, com esforço variável, funcionou contra GPT, Claude e Gemini.

Há até um atalho: os modelos maiores e menores de uma mesma empresa costumam compartilhar o mesmo formato, então um invasor pode extraí-lo de um modelo menor, que é mais fácil de quebrar. Choi espera que o formato continue recuperável mesmo com a evolução dos modelos, porque modelos de linguagem não conseguem manter esse tipo de segredo de forma confiável.

Onde isso se encaixa

O problema de confiança por trás disso já apareceu antes. Em junho de 2025, a Aim Security divulgou o EchoLeak (CVE-2025-32711), uma falha no Microsoft 365 Copilot em que era possível criar um e-mail capaz de fazer o assistente vazar arquivos internos sem necessidade de clique.

A Microsoft corrigiu a falha, e nenhum abuso em ambiente real foi registrado, mas foi um caso inicial e concreto de uma ideia de injeção de prompt transformada em um caminho funcional de exfiltração (extração) de dados em um produto disponível no mercado. O EchoLeak foi essa história em sua primeira forma: uma ordem escondida. A ADI é o próximo aperto do parafuso.

O lado do GitHub também não é novidade. Em maio de 2025, a Invariant Labs mostrou que uma issue (issue) pública no GitHub poderia induzir um agente a ler um repositório privado e vazá-lo, um problema de projeto sem correção simples.

Mais recentemente, testes entre fornecedores conseguiram fazer o Claude Code, o Gemini CLI e o Copilot vazarem seus próprios segredos por meio de texto em issues e pull requests, passando pelas barreiras que o GitHub adicionou exatamente para isso. Aqueles ataques escondiam instruções. A ADI falsifica quem disse o quê e fabrica o registro do que o agente já fez.

Os pesquisadores atribuem o problema a uma lição que o software tradicional aprendeu do jeito difícil: manter código e dados separados, e depois manter os dados confiáveis separados dos não confiáveis.

Os agentes pegaram a primeira metade e pularam a segunda. Dentro da própria memória de um agente, o nome em um e-mail fica colado ao corpo desse e-mail, sem nada que marque o que o sistema atesta e o que um estranho digitou. Até que os agentes tracem essa linha, uma mentira convincente sobre quem enviou algo é tudo o que um ataque precisa.

Article The Hacker News thehackernews.com