O GhostApproval é o nome que a Wiz deu a uma falha que encontrou em pelo menos seis assistentes de código IA populares, revelada em julho de 2026. Em resumo: um repositório armadilhado pode enganar o seu agente de código para escrever ficheiros fora do seu projeto - e, nos piores casos, antes de clicar em "aprovar". É um bom lembrete de que deixar um agente tocar no seu sistema de ficheiros só é tão seguro quanto o que a janela de aprovação mostra de facto. Eis o que é o GhostApproval, que ferramentas foram afetadas e como se proteger.
Como funciona o GhostApproval
O truque combina duas velhas fraquezas: seguir links simbólicos (CWE-61) e uma interface enganadora (CWE-451). Um repo malicioso contém um symlink - um ficheiro que na verdade é um apontador para outro caminho. O seu nome parece inofensivo, digamos project_settings.json, mas aponta para algo sensível como ~/.ssh/authorized_keys. Pede ao agente para editar "o ficheiro de definições"; ele segue o link e escreve no destino real - por exemplo adicionando a chave SSH de um atacante. O ponto-chave: a janela de confirmação mostra o nome inofensivo do symlink, não o destino resolvido. Como diz a Wiz, "o agente sabia, o utilizador não": o raciocínio do modelo por vezes reconhecia o caminho perigoso enquanto a janela o ocultava.
A variante perigosa: escreve antes de aprovar
Em algumas ferramentas a escrita acontece antes de a janela Aceitar/Rejeitar aparecer, tornando a confirmação num botão de anular em vez de uma barreira. A Wiz descreve exatamente isto no Windsurf: a chave SSH de um atacante era escrita em ~/.ssh/authorized_keys antes de o utilizador poder aprovar. É uma execução remota de código antes da autorização - o controlo humano chega depois de o dano estar feito.

Que ferramentas foram afetadas e o seu estado
A Wiz testou seis assistentes e reportou uma variante em cada. Eis o estado divulgado, reportado de forma neutra:
- Cursor - corrigido (CVE-2026-50549, versão 3.0+).
- Amazon Q Developer - corrigido (CVE-2026-12958, language server 1.69.0).
- Google Antigravity - corrigido (lançado em maio de 2026).
- Augment - confirmado; sem patch na divulgação.
- Windsurf - confirmado; a variante antes da autorização, sem patch na divulgação.
- Anthropic Claude Code - a Anthropic considera o problema fora do seu modelo de ameaça, com base em que o utilizador confirma que confia numa pasta no primeiro arranque do Claude Code; separadamente, o Claude Code acrescentou avisos de symlink numa versão anterior.
Porque importa para além de um bug
O GhostApproval não é realmente o erro de um único fornecedor - é um padrão. Duas decisões de design causam-no: uma sandbox superficial que não resolve o caminho canónico de um ficheiro antes de agir, e aprovações humanas formais em vez de informadas, porque aprova um nome em vez da ação real. Qualquer agente com amplo acesso ao sistema de ficheiros pode cair nesta armadilha. É a mesma classe de risco que abordámos no nosso guia de segurança de agentes de IA: autonomia mais acesso significa que uma má instrução se torna uma ação real.
Como se proteger
- Atualize as suas ferramentas já. Vários fornecedores corrigiram-no; use a versão mais recente do seu assistente de código.
- Confie apenas em repositórios de confiança. Tenha cuidado ao deixar um agente agir em repos desconhecidos ou recém-clonados.
- Use o menor privilégio. Execute os agentes num contentor ou sandbox que não consiga alcançar
~/.ssh, as suas credenciais de nuvem ou outros segredos. - Leia as janelas. Tenha cuidado com edições a ficheiros de configuração e dotfiles, e prefira ferramentas que resolvam os symlinks e mostrem o verdadeiro caminho de destino.
Conclusão
O GhostApproval mostra que o "controlo humano" só vale o que a janela revela de facto. Um symlink pode direcionar um agente bem-intencionado para os seus segredos, e uma confirmação que oculta o caminho real - ou aparece após a escrita - dá um falso conforto. Atualize o seu assistente de código IA, restrinja o que ele pode tocar, e considere as aprovações úteis apenas quando lhe mostram o verdadeiro destino.



