alexi.sh
Todos os artigosSegurança do navegadorPrivacidade de redeFerramentas de privacidadeModelagem de ameaçasProgramação com IAFerramentas de dev

alexi.shLaboratório de Engenharia de IA

ai-coding

GhostApproval: a falha dos assistentes de código IA que escreve ficheiros sem a sua permissão (2026)

PrivSec Lab4 min de leitura
Um editor de código aberto no ecrã de um portátil numa sala escura

A Wiz revelou o GhostApproval, uma falha de fronteira de confiança em pelo menos seis assistentes de código IA: um repositório malicioso pode enganar o agente para escrever fora do seu projeto através de um link simbólico, por vezes antes de aprovar. O que é, que ferramentas foram afetadas e como se proteger.

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.

Um terminal a listar ficheiros sobre um teclado retroiluminado - o GhostApproval abusa de um ficheiro ligado por symlink para escrever fora da pasta que julga estar a editar.

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.

Photo: Pexels (source)

Também disponível em

FAQ

O que é o GhostApproval?
O GhostApproval é um padrão de segurança que os investigadores da Wiz encontraram em pelo menos seis assistentes de código IA, revelado em julho de 2026. Um repositório malicioso contém um link simbólico (symlink) com um nome inofensivo mas que aponta para um ficheiro sensível fora do seu projeto - por exemplo um ficheiro chamado project_settings.json que na verdade aponta para ~/.ssh/authorized_keys. Quando pede ao agente para editar esse ficheiro, ele segue o link e escreve no destino real, enquanto a janela de aprovação mostra apenas o nome inofensivo. A Wiz resumiu assim: o agente sabia, o utilizador não.
O GhostApproval está corrigido?
Em parte. A Wiz reportou-o a seis fornecedores. Segundo a Wiz, o Cursor (CVE-2026-50549, versão 3.0+), o Amazon Q Developer (CVE-2026-12958, language server 1.69.0) e o Google Antigravity lançaram correções. A Augment e o Windsurf confirmaram o relatório mas, na altura da divulgação, não tinham lançado um patch. A Anthropic considera o problema fora do seu modelo de ameaça, com base em que o utilizador confirma que confia numa pasta ao iniciar o Claude Code; separadamente, o Claude Code acrescentou avisos de symlink numa versão anterior. Na prática: atualize as suas ferramentas.
Que assistentes de código IA foram afetados?
A Wiz testou seis e encontrou uma variante em cada: Cursor, Amazon Q Developer, Google Antigravity, Augment, Windsurf e Anthropic Claude Code. A gravidade ia de um problema de interface corrigível a uma execução remota de código antes da autorização, consoante a ferramenta. As respostas dos fornecedores diferem, por isso assuma que qualquer agente de código com amplo acesso ao sistema de ficheiros pode estar exposto a fugas de caminho via symlink, a menos que resolva e mostre o verdadeiro caminho de destino.
O GhostApproval pode executar código na minha máquina?
Nas piores variantes, na prática sim. Ao escrever uma chave SSH controlada pelo atacante em ~/.ssh/authorized_keys, um atacante pode obter acesso remoto à máquina do programador, o que é execução remota de código na prática. A Wiz descreveu o caso mais grave (no Windsurf) como uma RCE antes da autorização, porque o ficheiro era escrito antes de sequer aparecerem os botões Aceitar ou Rejeitar - por isso a confirmação funcionava como anular, não como barreira.
Como me protejo do GhostApproval?
Atualize o seu assistente de código IA para a versão mais recente, já que vários fornecedores o corrigiram. Deixe um agente agir apenas dentro de repositórios em que confia, e tenha cuidado ao abrir repos desconhecidos. Execute os agentes com o menor privilégio - idealmente num contentor ou sandbox que não consiga alcançar ~/.ssh, as suas credenciais de nuvem ou outros segredos. Leia com atenção as janelas de aprovação, sobretudo edições a ficheiros de configuração ou dotfiles, e prefira ferramentas que resolvam os symlinks e mostrem o verdadeiro caminho de destino.