Uma falha em quatro agentes de programação com IA amplamente usados permite que alguém que controle o repositório de código de um plugin troque o complemento instalado pelo agente por uma versão maliciosa, mesmo quando esse plugin foi travado pelo agente em uma versão específica e revisada, informou a empresa de segurança Air Security na quinta-feira.
A empresa disse que a Anthropic corrigiu a falha no Claude Code 2.1.179 e a OpenAI no Codex 0.146.0, que o GitHub Copilot não tem correção e que a Google não vai corrigir o Gemini CLI, que está sendo descontinuado.
Esses agentes instalam complementos chamados plugins a partir de mercados online. Para aumentar a segurança, o mercado trava cada plugin em uma única versão revisada por meio do hash do commit, uma longa sequência que identifica um instantâneo exato do código. A Air descobriu que os agentes baixam esse instantâneo, mas nunca verificam se o código obtido realmente corresponde a ele.
Uma branch é uma linha de código nomeada dentro de um repositório. Em um host de código que permite criar uma branch cujo nome seja parecido com um hash de commit, o dono do repositório de um plugin pode apontar esse nome para um código diferente. O agente então instala o código diferente, mas continua informando que está na versão travada.
Como um plugin executa com o mesmo nível de acesso da pessoa que está usando o agente, o código substituído pode acessar os arquivos dessa pessoa, credenciais salvas e os sistemas nos quais ela consegue entrar, disse a Air.
A técnica não funciona em todos os lugares. O GitHub não permite nomes de branch ou de tag que pareçam hashes de commit, segundo a documentação da plataforma, então um plugin instalado a partir de um repositório no GitHub não fica exposto a esse truque de branch. A Air afirma que a técnica funciona em hosts que permitem esse tipo de nome, como Bitbucket ou o servidor Git de uma empresa, que também são suportados por esses agentes.
Em 18 de setembro, os mercados que acompanham os agentes foram verificados e todos os plugins do catálogo comunitário da Anthropic, assim como os catálogos padrão do Claude Code e do Copilot, apontam para um repositório no GitHub.
O Gemini CLI é atacado de outra forma. Em vez de uma branch com formato de hash, a Air diz que seu instalador pode ser enganado por um repositório cuja branch principal se chama FETCH_HEAD, e a regra do GitHub contra nomes parecidos com hashes não bloqueia esse nome de forma clara. Assim, não está comprovado que instalar um plugin do Gemini CLI a partir do GitHub elimine a falha, e o Gemini CLI é o agente que, segundo a Air, não será corrigido.
O que faria o ataque dispensar qualquer ação da vítima seria a atualização automática em segundo plano, que permite ao agente atualizar plugins instalados por conta própria, de modo que um complemento já confiável possa ser substituído sem aviso. A Air diz que isso vem ativado por padrão no Claude Code e no Codex.
Mas a atualização automática fica ativada por padrão apenas para os próprios mercados integrados dos agentes, que são hospedados no GitHub, e fica desativada ou como opção para fontes externas, de acordo com a documentação da Anthropic e do GitHub. Portanto, um leitor que instale plugins apenas dos mercados padrão desses agentes, baseados no GitHub, não fica exposto à versão do ataque por nome de branch, segundo a própria descrição da Air e do GitHub sobre o funcionamento da falha.
A Air afirma que montou um ataque de teste funcional contra os quatro agentes em maio e avisou os fornecedores em junho. Até 18 de setembro, nenhum identificador CVE havia sido atribuído, e nenhum dos quatro fornecedores havia publicado um aviso de segurança sobre a falha. Também não há indícios de uso em ataque real.
Em um teste local, foi possível reproduzir o comportamento subjacente do Git. A própria correção pública da OpenAI descreve o mesmo erro: o Git “pode interpretar um SHA de commit solicitado como o nome de uma branch”, o que pode fazer com que a fonte de um plugin “materialize um commit diferente daquele que foi travado”. Essa alteração foi incluída no Codex 0.146.0.
Como cada agente verifica o travamento na própria máquina do usuário, e não no mercado, nenhum mercado pode corrigir isso pelos usuários. A correção precisa vir no próprio agente. Veja a situação de cada um:
| Agente | Situação | O que fazer |
| --------------------- | ------------------------------------ | --------------------------------------------------- |
| Anthropic Claude Code | Corrigido, segundo a Air, na 2.1.179 | Atualizar para 2.1.179 ou posterior |
| OpenAI Codex | Corrigido na 0.146.0 | Atualizar para 0.146.0 ou posterior |
| GitHub Copilot | Sem correção, segundo a Air | Nenhum patch disponível |
| Google Gemini CLI | Não será corrigido, segundo a Air | Migrar para o Antigravity, segundo a Air e a Google |
As fontes não informam se a atualização de um agente afetado remove um plugin que já tenha sido trocado ou se apenas impede trocas futuras.
As notas de versão da Anthropic para a 2.1.179 não mencionam a correção, e a informação de que o problema foi resolvido vem da própria Air. No caso do Copilot, a Air diz que avisou a Microsoft em junho e que nenhuma correção foi liberada. O Copilot consegue instalar plugins de hosts que não sejam o GitHub, justamente onde a Air afirma que está o risco.
A Google parou de oferecer o Gemini CLI para consumidores em junho e vem orientando os usuários para o Antigravity, seu agente mais novo, que, segundo a Air, não é alcançado por esse ataque. A empresa também afirmou que o acesso corporativo ao Gemini CLI continuará com atualizações. Não está claro se uma correção para essa falha está entre elas.
Os mesmos pesquisadores já testaram complementos de agentes antes. Em junho, a Air realizou um teste em que uma habilidade falsa enganou verificadores de segurança e alcançou cerca de 26.000 agentes depois que um link externo foi alterado após a aprovação da análise. O Plugin4Shell leva essa ideia de um link trocado para um plugin trocado por trás de um bloqueio de versão.
Publicidade
Nossa audiência é formada por analistas, pentesters, decisores e entusiastas que consomem nossas notícias todo dia pelo Site, Newsletter e Instagram. Fale com quem realmente importa para o seu negócio. Anuncie aqui. Saiba mais...