olimposec.com
Radar / Bugs / OS-2026-472
risco altoSUPPLY2026-09-18 · 3 min de leitura
0

Plugin4Shell permite que donos de repositório troquem plugins 'fixados' em quatro agentes de codificação de IA

Resumo executivo

A firma Air Security descreveu o Plugin4Shell, uma falha de validação que permite a quem controla o repositório de um plugin substituir, na prática, o código que um agente de codificação de IA instala, mesmo quando esse agente registra o plugin como fixado em um commit específico já revisado. Claude Code e OpenAI Codex já corrigiram o problema, GitHub Copilot ainda não tem correção disponível e o Google recomenda migrar do Gemini CLI para o Antigravity em vez de corrigir a falha.

A empresa de segurança Air Security divulgou o Plugin4Shell, uma falha presente em quatro agentes de codificação de IA amplamente usados -- Claude Code, OpenAI Codex, GitHub Copilot e Google Gemini CLI -- que permite a quem controla o repositório de origem de um plugin trocar o código que esses agentes efetivamente baixam e executam, mesmo quando o usuário havia 'fixado' (pinned) aquele plugin em uma versão específica já revisada. A Anthropic corrigiu o problema no Claude Code 2.1.179 e a OpenAI no Codex 0.146.0; o GitHub Copilot segue sem correção disponível, e o Google optou por não corrigir o Gemini CLI, recomendando em vez disso a migração para sua nova ferramenta, o Antigravity.

O mecanismo explora uma inconsistência na forma como esses agentes validam a fixação de versão: eles registram o plugin como travado em um determinado hash de commit, mas ao buscar o código na próxima execução verificam apenas se existe uma referência (branch ou tag) no repositório cujo nome corresponde a esse hash -- não se o conteúdo efetivamente obtido tem aquele hash. Um atacante que controla o repositório pode criar ou mover uma branch ou tag com o nome idêntico ao hash fixado, apontando-a para código malicioso; o agente busca por esse nome de referência, considera a checagem satisfeita e executa o conteúdo trocado, sem perceber a substituição.

Duas limitações moldam o alcance real do problema: no GitHub, a plataforma bloqueia nomes de branch ou tag que se pareçam com hashes de commit, o que neutraliza o ataque nos repositórios hospedados lá. Já em Bitbucket e em servidores Git internos ou auto-hospedados, comuns em ambientes corporativos, essa proteção não existe e a exploração permanece viável. Além disso, como a checagem de 'travamento' acontece na máquina do próprio usuário no momento da instalação, e não em um marketplace centralizado, nenhum operador de marketplace de plugins consegue mitigar isso de forma unificada para todos os usuários -- a correção depende de cada fornecedor de agente.

O caso importa porque derruba justamente o controle de segurança que usuários avançados adotam para mitigar risco de supply chain em ferramentas de IA agênticas: fixar um plugin em um commit específico revisado deveria ser uma garantia forte contra código malicioso injetado depois da revisão, mas o Plugin4Shell mostra que essa garantia dependia de uma validação que faltava. Com metade dos quatro agentes afetados ainda sem correção, organizações que usam GitHub Copilot ou Gemini CLI com plugins hospedados fora do GitHub precisam tratar isso como risco ativo, revisando código de plugins a cada execução em vez de confiar no pinning declarado pelo agente.

Fonte ↗
0 comentários

Entre para comentar.

Nenhum comentário ainda — seja o primeiro.