GhostApproval: A vulnerabilidade que forçou atualização do Cursor, Claude Code e outros agentes de programação

Por anos aprendemos a desconfiar de anexos.

Depois dos pacotes npm.

Mais tarde das imagens Docker.

Agora surgiu uma nova categoria de risco:

os repositórios que você abre com um agente de codificação.

Esta semana, pesquisadores da Wiz Research publicaram GhostApproval, uma vulnerabilidade que afeta vários dos agentes de codificação mais populares do mercado.

Entre eles:

  • Cursor

  • Amazon Q Developer

  • Google Antigravity

  • Windsurf

  • Augment

  • Claude Code (com uma avaliação diferente por parte da Anthropic)

O interessante não é apenas o bug.

É o que revela sobre a próxima geração de problemas de segurança para agentes.


O que aconteceu?

GhostApproval não explora uma vulnerabilidade do modelo.

Também não quebra o sandbox mediante injeção de prompt.

O ataque reutiliza uma técnica conhecida há décadas no Unix:

os links simbólicos (symlinks).

Um symlink parece um arquivo normal.

Mas na verdade aponta para outro arquivo completamente diferente.

Por exemplo:

project_settings.json
        │
        ▼
~/.ssh/authorized_keys

O usuário acredita que o agente está modificando um arquivo do projeto.

Na verdade está escrevendo sobre um arquivo sensível do sistema.


Como funciona o ataque?

Imagine um repositório aparentemente legítimo.

Contém um arquivo chamado:

project_settings.json

Mas esse arquivo é realmente um symlink para:

~/.ssh/authorized_keys

O README diz algo completamente razoável:

“Execute a configuração do projeto.”

ou

“Peça ao seu agente que configure o workspace.”

O agente segue as instruções.

Encontra o arquivo.

Solicita aprovação.

Mas o diálogo mostra apenas:

Editar project_settings.json

Não mostra o destino real do symlink.

Quando o usuário aprova…

…o agente escreve sobre authorized_keys, permitindo que um atacante obtenha acesso persistente à máquina por meio de uma chave SSH.


O verdadeiro problema

O mais marcante do relatório da Wiz é que vários agentes detectavam internamente que o arquivo era um symlink.

Mas a interface apresentada ao usuário não mostrava essa informação.

Em outras palavras:

o agente sabia que estava escrevendo em um arquivo sensível…

…mas o desenvolvedor não.

Isso torna a aprovação humana em algo quase simbólico.

O usuário aceita uma operação sem realmente saber o que está autorizando.


Quais ferramentas foram afetadas?

Segundo a Wiz, a investigação abrangeu:

  • Amazon Q Developer

  • Cursor

  • Google Antigravity

  • Claude Code

  • Windsurf

  • Augment

A resposta de cada provedor foi diferente.


O que foi corrigido?

Cursor

Cursor classificou o problema como uma vulnerabilidade de alta severidade e publicou a correção na versão 3.0, atribuindo-lhe o identificador CVE-2026-50549.


Amazon Q Developer

AWS resolveu o problema no Language Server 1.69.0, registrado como CVE-2026-12958.

Na maioria dos casos, a atualização chega automaticamente ao reiniciar a IDE.


Google Antigravity

Google modificou a forma como apresenta e resolve os symlinks durante as operações de escrita.


Claude Code

Anthropicadotou uma postura diferente.

A empresa argumentou que o usuário já tinha confiado explicitamente no diretório e aprovado a operação, portanto o cenário ficava fora de seu modelo de ameaças.

No entanto, as versões atuais (2.1.173 ou posteriores) mostram o destino real do symlink durante a aprovação, reduzindo significativamente o risco.


O que isso significa para nós?

Mais do que um bug pontual, GhostApproval coloca em evidência uma mudança importante.

Os agentes de codificação já não apenas leem arquivos.

Também:

  • escrevem código,

  • modificam configurações,

  • executam comandos,

  • criam arquivos,

  • administram projetos completos.

Isso significa que erros clássicos do sistema operacional adquirem uma dimensão completamente nova quando um agente pode agir de forma autônoma.


Como se proteger

A boa notícia é que as recomendações são bem simples.

1. Atualize seu agente

Se utiliza:

  • Cursor

  • Amazon Q Developer

  • Google Antigravity

  • Claude Code

certifique-se de estar executando uma versão que inclua as correções correspondentes.


2. Não execute “setup” automaticamente em repositórios desconhecidos

Especialmente se você acabou de clonar um projeto da Internet.

Antes de pedir ao agente:

“Configure o projeto.”

vale a pena revisar quais arquivos ele contém.


3. Preste atenção às aprovações

Se o agente solicita modificar um arquivo aparentemente inócuo…

…pergunte-se se esse arquivo deveria realmente existir.


4. Utilize sandboxes quando possível

Executar agentes dentro de ambientes isolados reduz muito o impacto deste tipo de ataques.


5. Incorpore ferramentas de governança

Durante as últimas semanas vimos aparecer:

  • SkillSpector

  • CodeGate

  • MCP Gateways

Todos respondem à mesma necessidade:

controlar melhor o que nossos agentes podem fazer.

GhostApproval demonstra por que essa camada de segurança começa a ser indispensável.


O interessante não é GhostApproval

O interessante é que reutiliza um problema que existe há décadas.

Os symlinks não são novos.

O novo é que agora existe um agente disposto a seguir instruções automaticamente sobre eles.

Isso muda completamente o modelo de risco.

Por anos a pergunta era:

“Posso confiar neste repositório?”

Agora também temos que perguntar:

“Posso confiar no que meu agente vai fazer dentro deste repositório?”

São duas perguntas distintas.

E GhostApproval provavelmente é o primeiro grande lembrete de que a segurança dos agentes não depende apenas do modelo.

Depende do runtime.

Da interface.

E, acima de tudo, de como se desenha a relação entre o agente e a pessoa que finalmente aprova suas ações.


Recursos

Investigação da Wiz

https://www.wiz.io/blog/ghostapproval-ai-coding-agent-vulnerability

Mais informações