VORVEXAPEX

Prompt injection: o ataque que virou o problema nº 1 de quem colocou um agente de IA pra trabalhar

Assim que um agente de IA ganha acesso a ferramenta, arquivo ou shell, prompt injection deixa de ser truque de chatbot e vira caminho pra execução de comando. Um panorama técnico com um caso real confirmado.

Por Equipe VorvexPublicado em 14 de agosto de 20264 min de leitura

Prompt injection não é novidade, o termo circula desde os primeiros experimentos com LLM em produção. O que mudou é o tamanho do estrago. Enquanto o modelo só respondia texto, uma instrução escondida num prompt malicioso no máximo produzia uma resposta constrangedora. Agora que agentes de IA leem e-mail, abrem arquivo, chamam API e executam comando em nome de um usuário, a mesma instrução escondida vira ação real: comando executado, dado exfiltrado, configuração alterada sem que ninguém aprovasse conscientemente.

O que é prompt injection, na prática

É a técnica de inserir instrução dentro de conteúdo que o modelo vai processar, de forma que o modelo trate aquela instrução como comando legítimo do operador. Existem duas variantes principais. Na injection direta, o próprio usuário escreve o prompt malicioso, geralmente pra contornar filtro de segurança do modelo (jailbreak). Na injection indireta, que é a que preocupa em ambiente agentic, o atacante planta a instrução num conteúdo que o agente vai ler depois, sem interação direta com ele: um comentário de issue, uma página web, um arquivo, o corpo de um e-mail. O modelo não distingue de forma confiável 'isto é dado que devo processar' de 'isto é instrução que devo seguir', porque os dois chegam pelo mesmo canal: texto.

Diagrama comparando injeção direta (usuário digitando no chat) e injeção indireta (instrução escondida em um documento sendo lida pelo agente)
Injeção direta parte do próprio usuário; injeção indireta vem de um conteúdo externo que o agente processa sem saber que está comprometido.

Da conversa até execução de comando: o caso do GitHub Copilot

O exemplo mais concreto de 2025 é a CVE-2025-53773, publicada em 12 de agosto e classificada como injeção de comando (CWE-77) no GitHub Copilot e no Visual Studio. A National Vulnerability Database e o GitHub Security Advisory (GHSA-3m2x-p87c-pwv6) confirmam CVSS 3.1 de 7,8 (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H), afetando o Visual Studio 2022 nas versões 17.14.0 a 17.14.11, corrigida na 17.14.12. Vale registrar: várias publicações no assunto repetiram um CVSS de 9,6, número que não bate com o que consta nas fontes oficiais, exatamente o tipo de erro que evitamos aqui.

O mecanismo é o que interessa. Conteúdo malicioso plantado em algo que o Copilot processa, como um arquivo do projeto ou uma descrição de issue, instrui o agente a editar o arquivo de configuração `.vscode/settings.json` e ligar a opção `chat.tools.autoApprove`. Com essa flag ativa, o Copilot passa a executar ferramenta e comando sem pedir confirmação explícita do usuário, o chamado modo YOLO. A partir daí, o próximo comando que o agente decidir rodar (por instrução do próprio conteúdo malicioso) executa localmente sem barreira nenhuma. Prompt injection deixa de ser sobre enganar o modelo e passa a ser sobre desligar o único controle que restava: a confirmação humana.

Diagrama com quatro passos numerados representando a cadeia de um ataque de prompt injection: conteúdo malicioso, instrução absorvida pelo agente, ação com ferramenta privilegiada, dado exportado ou comando executado.
A cadeia típica de exploração: conteúdo com instrução escondida, agente processa como comando, ferramenta com privilégio executa, dado sai ou comando roda sem revisão humana.

Não é caso isolado nem exclusivo de um fornecedor

Em março de 2026, a CVE-2026-2256 documentou falha equivalente no MS-Agent, framework de agente da ModelScope: entrada derivada de prompt não sanitizada permite execução de comando de sistema operacional arbitrário, CVSS 3.1 de 6,5 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N), afetando a versão v1.6.0rc1 e anteriores, também classificada como CWE-77. Dois fornecedores diferentes, duas arquiteturas de agente diferentes, a mesma raiz do problema: comando derivado de conteúdo que deveria ser tratado como dado, executado sem sanitização suficiente. Não é coincidência que prompt injection ocupe a primeira posição da OWASP Top 10 para aplicações LLM desde que a lista existe.

Diagrama de arquitetura mostrando conteúdo externo não confiável fluindo através de um agente de IA até acesso privilegiado a sistema, API e arquivos
A mesma arquitetura de risco se repete: conteúdo externo entra, o agente processa, e o resultado sai com acesso privilegiado, independente do fornecedor.

Por que é difícil de resolver de vez

A dificuldade é estrutural, não é falta de patch. Um LLM recebe instrução do sistema, contexto de conversa e conteúdo externo pelo mesmo canal de texto, sem separação criptográfica ou estrutural confiável entre 'isto é comando' e 'isto é dado a processar'. Filtro de palavra e classificador de intenção ajudam, mas são heurística, não garantia, e cada geração de defesa produz uma geração nova de técnica de ofuscação pra contornar. O que realmente muda o risco não é tornar o modelo perfeito, é limitar o que uma instrução injetada consegue fazer mesmo quando passa despercebida.

Diagrama mostrando instrução do sistema e dado externo chegando ao modelo pelo mesmo canal de texto, indistinguíveis entre si
O problema estrutural: comando e dado chegam pelo mesmo canal de texto, sem separação criptográfica ou estrutural confiável entre os dois.

Defesa em camadas: o que reduz o risco de verdade

  • Tratar todo conteúdo externo (página web, PR, e-mail, arquivo, resposta de API de terceiro) como dado não confiável, nunca como instrução, inclusive dentro do próprio prompt de sistema do agente
  • Rodar ferramenta do agente em sandbox isolada, sem acesso direto a shell do host, sistema de arquivo sensível ou rede irrestrita
  • Exigir confirmação humana explícita pra ação de alto risco (execução de comando, envio de dado pra fora, alteração de configuração), com aprovação automática desligada por padrão
  • Aplicar privilégio mínimo nas credenciais e escopos concedidos ao agente, nunca reaproveitar token de uso amplo
  • Registrar e monitorar toda ação tomada pelo agente, com alerta pra padrão de uso fora do esperado
  • Incluir o agente e suas integrações no escopo de pentest, testando prompt injection como se testa qualquer outra superfície de entrada não confiável
Diagrama de círculos concêntricos numerados de 1 a 4 ao redor de um cadeado, representando camadas sucessivas de defesa contra prompt injection.
Defesa em profundidade: nenhuma camada sozinha resolve, mas cada uma reduz o dano se a anterior falhar.

O que isso muda pra quem está avaliando contratar um pentest

Agente de IA com acesso a ferramenta, arquivo ou API deixou de ser experimento de time de produto e virou superfície de ataque com o mesmo peso que uma API ou uma rede interna. Se a empresa já colocou um copiloto de código, um agente de atendimento ou uma automação orientada a LLM em produção, essa integração precisa entrar no escopo do próximo teste de segurança, não como item extra, como item padrão.

← Voltar ao blog

Quer essa mesma profundidade aplicada ao seu ambiente?

Conte o que você precisa validar e a equipe monta um escopo de pentest sob medida.

Falar no WhatsApp

Pronto para avaliar o risco da sua empresa?