GhostApproval: symlink de 30 anos engana Claude Code, Cursor, Amazon Q e Windsurf para roubar segredos do desenvolvedor

Pesquisa da Wiz mostra que Claude Code, Amazon Q, Cursor, Google Antigravity, Augment e Windsurf podem ser enganados por symlinks maliciosos para acessar arquivos fora do escopo aprovado. Quatro ja corrigiram; Augment e Windsurf ainda nao.

ai-coding

Hands typing on laptop with futuristic AI hologram interface, machine learning code, data processing, automation concept.

Resumo: Pesquisadores da Wiz (Google Cloud) divulgaram uma tecnica de ataque batizada de GhostApproval que engana assistentes de IA para desenvolvedores — Claude Code, Amazon Q Developer, Cursor, Google Antigravity, Augment e Windsurf — usando uma vulnerabilidade classica de systems Unix: o symlink following. Ao seguir links simbolicos plantados em repositorios, os agentes gravam ou leem arquivos fora do escopo autorizado pelo usuario, permitindo comprometer a maquina do desenvolvedor. Google, Anthropic, Cursor e Amazon ja aplicaram mitigacoes; Augment e Windsurf ainda nao.

O que aconteceu

A Wiz publicou os detalhes tecnicos em relatorio divulgado nesta quarta-feira. A tecnica GhostApproval leva a uma classe de bug conhecida ha decadas em ambientes Unix — o symbolic link following — e a transporta para o novo ecossistema de agentes de codigo que operam com privilegios elevados no filesystem local. Em um assistente moderno, quando o desenvolvedor autoriza a leitura ou escrita de um arquivo dentro do repositorio, essa autorizacao pode ser aplicada ao alvo do symlink — nao ao arquivo declarado no path.

Ou seja: basta plantar um arquivo README.md que na verdade e um symlink para ~/.ssh/id_rsa. O usuario aprova “editar README.md”; o agente segue o link e opera sobre a chave privada. Na variacao ofensiva completa, o atacante consegue exfiltrar segredos, injetar codigo em arquivos fora do repositorio e ate manipular arquivos de configuracao como ~/.bashrc ou ~/.aws/credentials.

Como o ataque funciona

A cadeia de exploracao segue o padrao classico do TOCTOU (time-of-check to time-of-use): o agente valida o caminho autorizado pelo usuario, mas ao abrir de fato o arquivo, o sistema operacional resolve o symlink para o alvo real. Como o agente ja possui aprovacao para “aquele caminho”, nao ha novo prompt de confirmacao. A Wiz demonstra tres vetores praticos:

  • Repositorio clonado com symlinks maliciosos: um projeto open source ou fork envenenado contem links que apontam para arquivos sensiveis fora do diretorio de trabalho
  • Sequencia de aprovacao encadeada: o agente executa um script legitimo que cria symlinks e, no proximo passo autorizado, opera sobre eles
  • Ataque supply-chain via dependencia: um pacote npm/PyPI compromissado planta symlinks durante o postinstall

“O comportamento de seguir symlinks e um padrao do sistema operacional. O que muda com agentes de IA e que a decisao de escrever no arquivo ja nao passa por revisao humana consciente — ela e delegada para um assistente com privilegios amplos.” — Wiz Research

A vulnerabilidade e conhecida em drivers, servicos e utilitarios Unix desde os primeiros dias do Unix. Ha CVEs documentados desde os anos 1990 relacionados a race conditions em programas com privilegios elevados. O que o time da Wiz demonstrou e a translacao dessa classe de bug para o novo dominio de agentes de IA — uma camada de risco que nao esta prevista nos modelos de ameaca da maioria dos fornecedores de assistentes.

Quem esta afetado

  • Claude Code — Anthropic aplicou mitigacoes antes da divulgacao publica
  • Amazon Q Developer — corrigido
  • Cursor — corrigido
  • Google Antigravity — mitigado antes do report
  • Augment — confirmou recebimento, sem fix publicado
  • Windsurf — confirmou recebimento, sem fix publicado

O impacto direto atinge equipes de engenharia que integraram agentes de IA no fluxo diario — o pior cenario e um desenvolvedor abrir um repositorio malicioso do GitHub (fork envenenado, contribuicao maliciosa aceita em um workshop, projeto tutorial baixado por engano) e autorizar acoes rotineiras do agente. Em segundos, chaves SSH, tokens de API, credenciais AWS ou dados pessoais podem sair da maquina.

Analise

GhostApproval e o exemplo mais claro ate agora de que o boom dos agentes de codigo em 2026 abriu uma nova superficie de ataque que combina primitivos antigos com aprovacoes automatizadas. Ha um paralelo com o que vimos nos primeiros anos do npm: um modelo de confianca projetado para produtividade, sem controle rigido de comportamento, colidindo com dependencias e artefatos vindos de fora. O que na era do npm virou “prototype pollution” e “supply-chain attack”, na era dos agentes ganha rotulo de “prompt approval bypass”.

O padrao adotado por Anthropic, Google, Cursor e Amazon aponta para o desenho correto: resolver o path para o alvo real antes da aprovacao, e re-verificar se ainda esta dentro do escopo autorizado. Sem isso, qualquer agente que acessa o filesystem local esta expondo credenciais a um bug conhecido ha 30 anos. A resposta relativamente rapida dos vendors mostra que a industria entendeu a gravidade — mas Augment e Windsurf permanecem em risco.

Recomendacoes praticas

  • Atualize Claude Code, Amazon Q Developer, Cursor e Google Antigravity para as versoes mais recentes; para Augment e Windsurf, restrinja o uso ate que o fix chegue
  • Rodar assistentes de IA em containers ou sandboxes por projeto — nao dar acesso ao $HOME do usuario nem a ~/.ssh, ~/.aws, ~/.config
  • Configurar Git para nao seguir symlinks entre diretorios de repositorios diferentes; considerar core.symlinks=false em maquinas que rodam agentes com privilegio
  • Auditar logs de tool use dos agentes (arquivo aberto vs. arquivo autorizado) — regra simples: se path resolvido diverge do path aprovado, alerta
  • Estabelecer politica clara para abertura de repositorios de terceiros pelo agente: clonar em usuario dedicado sem acesso a segredos ate revisao humana
  • Rotacionar chaves SSH e tokens caso o agente tenha operado em repositorios externos nas ultimas semanas

Fonte: SecurityWeek