Do prompt ao exploit: Cyera Research Labs divulga vulnerabilidades de injeção de comandos e prompts no Gemini CLI

Principais destaques
- O Cyera Research Labs identificou duas vulnerabilidades de segurança — injeção de comando e injeção imediata — na ferramenta Gemini CLI do Google.
- Ambas as vulnerabilidades permitiram que os invasores executassem comandos arbitrários com os mesmos privilégios do processo CLI.
- O Google reconheceu as descobertas e emitiu correções por meio de seu Programa de Recompensas de Vulnerabilidade (VRP).
- A descoberta foi feita usando a metodologia de pesquisa de vulnerabilidade aumentada por IA da Cyera, demonstrando como grandes modelos de linguagem (LLMs) podem acelerar a descoberta de segurança no mundo real.
O que descobrimos e por que isso é importante
O Cyera Research Labs descobriu duas vulnerabilidades exploráveis no Gemini CLI do Google, uma interface de linha de comando que permite aos desenvolvedores interagir diretamente com a família Gemini de grandes modelos de linguagem.
Esses problemas, rastreados como problema 433939935 e problema 433939640, permitiram que os invasores executassem comandos arbitrários, explorando a lógica de instalação da extensão VS Code ou por meio de técnicas de injeção imediata.
Se exploradas, essas vulnerabilidades podem dar aos invasores acesso a ambientes de desenvolvimento confidenciais, credenciais e dados de modelos de IA. A resposta rápida e a remediação do Google por meio de seu VRP refletem a gravidade desses problemas e a crescente importância de protegendo ferramentas de desenvolvimento de IA.
Sobre a GEMINI CLI
CLI do Gemini é uma ferramenta de interface de linha de comando desenvolvida pelo Google que permite aos desenvolvedores interagir com a família Gemini de grandes modelos de linguagem diretamente do terminal. Ele fornece funcionalidade para tarefas como gerar texto, analisar código e integrar os recursos do Gemini em fluxos de trabalho ou aplicativos locais. A ferramenta foi projetada para agilizar a experimentação e o desenvolvimento com modelos Gemini sem exigir uma interface baseada na web.
Por que as ferramentas baseadas em IA precisam de proteção extra
Os ambientes de desenvolvimento de IA são expostos de forma única porque geralmente unem a entrada do usuário, a inferência do modelo e as ações no nível do sistema. As vulnerabilidades nessas ferramentas podem ter impactos em cascata, potencialmente levando ao acesso não autorizado à propriedade intelectual, implantações mal configuradas ou comprometimento dos dados de treinamento.
As descobertas de Cyera enfatizam que a injeção imediata não é apenas uma preocupação em nível de modelo - pode levar diretamente ao comprometimento do sistema quando interfaces de linguagem natural interagem com mecanismos de execução de código.
A abordagem aumentada por IA por trás da descoberta
A equipe de pesquisa da Cyera usou um Metodologia aumentada de LLM para acelerar a descoberta de vulnerabilidades:
- Análise estática automatizada: Uma varredura do Semgrep identificou 6.115 possíveis problemas na base de código TypeScript do Gemini CLI.
- Triagem baseada em LLM: Um prompt de auditoria especializado analisou cada descoberta quanto à possibilidade de exploração, restringindo os resultados a 12 ligações em horas em vez de semanas.
- Validação manual: Usando Cursor IDE e Claude 4 Soneto, os pesquisadores validaram e confirmaram duas vulnerabilidades exploráveis em 48 horas.
- Ganhos de eficiência: Esse processo alcançou um Redução de 99,8% em falsos positivos e reduziu o tempo de análise de cerca de 300 a 500 horas para apenas 16.
Plano de fundo
A pesquisa de segurança da Cyera se concentra nas vulnerabilidades da infraestrutura de IA devido à sua posição estratégica nas pilhas de tecnologia moderna. As interfaces de linha de comando de IA representam limites críticos de confiança onde o processamento de linguagem natural encontra a execução do sistema. As vulnerabilidades nesses componentes afetam diretamente as posturas de segurança de dados em ambientes de nuvem, IA e locais.
Quando ferramentas de IA, como o Gemini CLI, são comprometidas, o impacto técnico vai além do processo imediato. Essas ferramentas geralmente acessam ambientes de desenvolvimento, arquivos de configuração, credenciais e artefatos de modelo. Uma exploração bem-sucedida fornece aos atacantes acesso privilegiado à propriedade intelectual, às configurações de implantação e, potencialmente, aos dados do cliente processados por meio de fluxos de trabalho de IA.
metodologia de pesquisa
A pesquisa empregou uma abordagem sistemática combinando análise estática com validação de vulnerabilidade baseada em LLM:
Fase 1: Análise estática automatizada
A varredura do SEMGREP identificou 6.115 possíveis problemas de segurança na base de código TypeScript do Gemini CLI. A configuração de escaneamento incluiu:
- Regras de segurança genéricas para padrões de vulnerabilidade comuns
- Verificações de segurança específicas do TypeScript
- Regras lógicas de detecção de vulnerabilidades voltadas para problemas de fluxo de controle
Fase 2: Triagem baseada em LLM
Um prompt de auditoria de segurança especializado processou as descobertas do SEMGREP para determinar a capacidade de exploração. O prompt analisou cada descoberta com base em critérios específicos:
- Acessibilidade a partir de vetores de entrada (argumentos CLI, entradas de API, arquivos de configuração, plug-ins)
- Presença e eficácia da higienização de insumos
- Capacidade de exploração real em configurações de produção
O processo de triagem reduziu 6.115 descobertas para 12 leads relevantes por meio da análise sistemática do fluxo de código.
O prompt que foi usado:
Você é um agente profissional de auditoria de segurança de IA. Você está analisando uma grande base de código localizada na pasta “gemini-cli”. Você tem acesso total a todos os arquivos de origem nesta pasta.
Você recebe um arquivo de saída de escaneamento do Semgrep: “gemini_semgrep_output.json”, que contém alguns milhares de descobertas. Seu trabalho é fazer a triagem de cada descoberta e determinar se ela leva a uma vulnerabilidade real e explorável.
Além disso, depois de examinar a saída do semgrep, você DEVE analisar o fluxo de código real na árvore de origem “gemini-cli” ao tomar decisões.
---
ANÁLISE POR DESCOBERTA - SIGA ESTAS ETAPAS:
1. Verifique a acessibilidade
Determine se a descoberta pode ser alcançada a partir de qualquer um desses vetores de entrada:
- Argumentos CLI (argv, argc, outros argumentos do ambiente)
- Entradas da API REST (se aplicável)
- Arquivos de modelo analisados: GGUF, arquivos de slot, tokenizer ou arquivos de vocabulário
- Arquivos de configuração (por exemplo, JSON, YAML, TOML)
- Interfaces remotas (portas, arquivos, rpcs, protocolos diferentes)
- Processos de autenticação
- mecanismos de carregamento de plugins/dlls/bin
Se o problema não puder ser acessado por meio de nenhuma das opções acima, marque-o como “inacessível”: verdadeiro.
2. Verifique a higienização ou validação
Se o problema for detectável, analise o controle total e o fluxo de dados para verificar se a entrada está limpa ou validada antes de chegar ao coletor vulnerável.
- Procure lógica de validação de entrada, verificações de limites, validação de esquema, verificações mágicas de bytes, restrições de comprimento de entrada, etc.
- Determine se a validação está ausente, é fraca ou pode ser contornada.
3. Verifique novamente o fluxo para verificar se há confiança
Se você suspeitar de uma vulnerabilidade:
- Repercorra todo o fluxo da entrada ao coletor
- Confirme se não há ramificações de validação perdidas
- Certifique-se de que seu raciocínio seja sólido e enraizado no código-fonte real
---
USE O TERMINAL PARA ANÁLISE INTELIGENTE DE ARQUIVOS (macOS/Linux)
Para ler e analisar arquivos grandes com eficiência sem consumir muita memória, use ferramentas de shell nativas que processam dados em streaming em vez de carregar tudo na memória:
- Use `grep -R “pattern” .` ou `grep -E “regex” file.txt` para localizar chamadas de função ou padrões de dados relevantes (equivalentes ao `Select-String` do PowerShell).
- Use `tail -n 50 file.txt` ou `head -n 100 file.txt` para ler seções parciais de um arquivo.
- Combine filtros com `awk`, `sed` e `grep` para extrair ou transformar dados - por exemplo:
grep “função” script.sh | awk '{print $2}'
- Use `awk` ou `sed` para análise em linha de corpos de funções ou estruturas de configuração:
awk '/start_pattern/, /end_pattern/' file.txt
- Use `wc -c file.txt` ou `du -h file.txt` para verificar o tamanho dos arquivos.
- Evite usar `cat file.txt` em arquivos muito grandes, a menos que você esteja transmitindo ou canalizando a saída.
Aplique essas técnicas durante a travessia de código e a análise de arquivos para escalar com mais eficiência ao lidar com grandes arquivos de origem ou de log.
---
SE A DESCOBERTA FOR UMA VULNERABILIDADE VÁLIDA:
Anexe um objeto JSON a um arquivo chamado security_report_ {current_date} .json com este formato:
{
“localização_exata”: {
“arquivo”: "<filename>“,
“função”: "<function name if applicable>“,
“linha”: <line number>
},
<Short explanation of the vulnerability and relevant CWE (e.g., CWE-125: Out-of-Bounds Read) >“ explicação_da vulnerabilidade”: “”,
<Why input validation is insufficient or missing>“validação_higienização”: "“,
“exemplo_de_exploração de entrada”: {
“vector”: “<'argv' | 'rest api' | 'arquivo de configuração' | 'arquivo de modelo' | 'arquivo de lote' >”,
<Concrete example of input that would trigger the vulnerability>“example_input”: "”
}
}
---
SE A DESCOBERTA NÃO FOR UMA VULNERABILIDADE REAL:
Anexe um objeto JSON a um arquivo chamado unrelevant_leads_ {current_date} .json no formato abaixo:
{
“descrição_do problema”: {
“título”: "<Semgrep rule title>“,
“explicação”: "<Semgrep rule explanation or message>”
},
“inacessível”: <true|false>,
“sanitized_checked”: <true|false>,
“not_a_vulnerabilidade”: <verdadeiro | falso>
}
---
ORIENTAÇÃO DE ANÁLISE:
- Você tem acesso total a toda a pasta “gemini-cli/” - use-a para ler implementações de funções, definições de tipos, utilitários auxiliares e analisadores personalizados.
- Pense como um pesquisador de vulnerabilidade humana: rastreie entradas, analise cadeias de chamadas, procure condições e determine a capacidade de desvio.
- Use comandos do PowerShell e filtragem baseada em shell para navegar pelo código com eficiência.
- Não confie apenas nas mensagens do Semgrep. Baseie as decisões no fluxo de código real.
---
CRONOMETRAGEM:
Essa tarefa inclui 6115 descobertas e pode levar um ou dois dias inteiros. A precisão e a profundidade da análise são mais importantes do que a velocidade. Não se apresse.
Comece a analisar as descobertas em: gemini_semgrep_output.json
Fase 3: Validação manual
Resumo da validação de segurança do Cursor IDE
Usando o Cursor IDE com a assistência do Claude-4-Sonnet, validamos os 12 leads identificados por meio das seguintes etapas:
- Verificação do fluxo de controle (da entrada ao coletor)
- Análise da técnica de bypass
- Desenvolvimento básico de prova de conceito (PoC)
- Análise dos mecanismos e mitigações do sistema operacional
Depois de concluir a validação inicial dos 12 leads, analisamos manualmente cada um deles. Vários leads foram considerados não relevantes pelos seguintes motivos:
- A prova de conceito não levou em conta certas restrições.
- A vulnerabilidade tinha uma probabilidade muito baixa de ser explorada.
- O vetor de ataque exigia um nível irrealisticamente alto de acesso inicial (por exemplo, a capacidade de executar código por meio de scripts do GitHub Actions).
Após essa análise, três problemas potenciais permaneceram. Um deles, um vetor de injeção de comando no macOS, foi descartado como não relevante porque a API usada para gerar processos mitigou o risco.
Isso deixou dois vetores válidos para análise posterior.
Fase 4: Confirmação da exploração
Duas explorações de prova de conceito foram desenvolvidas e testadas. Pesquisas da Cyera confirmaram que a injeção de comando e a injeção imediata são exploráveis em ambientes de produção.
Tempo total de pesquisa: 2 dias desde a verificação inicial até a confirmação das vulnerabilidades.
Detalhes dos problemas
Problema 1: injeção de comando de instalação do VS Code Extension (problema 433939935)
Localização: /packages/cli/src/ui/commands/idecommand.ts: 136
A vulnerabilidade existe no manipulador de instalação da extensão VS Code:
comando const = `$ {VSCODE_COMMAND} --install-extension $ {vSixPath} --force`; ExecSync (comando);
A variável vSixPath, obtida dos resultados de glob.sync (), é interpolada diretamente em um comando shell sem higienização.
Vetor de ataque: Um invasor com acesso ao sistema de arquivos pode criar um arquivo.vsix malicioso com metacaracteres de shell no nome do arquivo. Quando o usuário executa /ide install, o nome do arquivo malicioso aciona a injeção de comando.
Exemplo: Um arquivo chamado extension.vsix”; malicious_command; echo "executaria malicious_command quando processado.
Impacto na plataforma: Os sistemas Linux e macOS são vulneráveis. Os sistemas Windows estão coincidentemente protegidos devido a um bug na biblioteca global que impede a descoberta de arquivos com caminhos absolutos.
Problema 2: Ignorar a validação de comandos do Shell por meio de injeção imediata (problema 433939640)
Localização: /packages/core/src/tools/shell.ts: 112
A função de validação do comando shell implementa a filtragem de substituição de comando incompleta:
if (command.includes ('$ (')) {
return {allowed: false, reason: 'A substituição de comando usando $ () não é permitida'};}
A validação bloqueia a sintaxe $ (), mas não bloqueia a substituição do comando backtick (```), fornecendo um mecanismo de desvio equivalente.
Vetor de ataque:
Um invasor capaz de influenciar as solicitações processadas pelo Gemini CLI pode injetar comandos usando a substituição de crase. O modelo de IA, seguindo as instruções do usuário ou solicitações maliciosas nos arquivos analisados, pode executar comandos contendo acentos invertidos.
Exemplo: O comando echo “data\\ malicious_command” ignora a validação, enquanto o echo “data$ (malicious_command)” está bloqueado corretamente.
Pesquisas recentes destacaram vários métodos de injeção imediata em diferentes modelos de IA:
- Navegador Perplexity Comet AI: Pesquisadores da Brave identificaram uma falha crítica na qual os invasores podem injetar avisos maliciosos em capturas de tela ou conteúdo oculto da web. Quando os usuários interagem com esse conteúdo, a IA processa inadvertidamente esses comandos ocultos, potencialmente levando a ações não autorizadas, como a exfiltração de dados. Notícias sobre segurança cibernética
- Desafio LLMail-Inject: Um estudo intitulado LLMail Inject apresenta um conjunto de dados derivado de um desafio que simula cenários realistas em que os atacantes injetam instruções maliciosas em e-mails. O desafio envolveu participantes que tentaram explorar modelos de linguagem grande (LLMs) para acionar ações não autorizadas por meio de interações por e-mail. arXiv
Esses estudos demonstram os diversos métodos pelos quais ataques de injeção imediata podem ser executados, enfatizando a necessidade de medidas de segurança robustas em sistemas de IA para mitigar esses riscos.
Clipes PoC
<aside>♻️
ADICIONE CLIPES POC AQUI
</aside>
Impacto técnico
As vulnerabilidades identificadas permitem a execução de comandos com os mesmos privilégios do processo Gemini CLI. A exploração pode levar a:
- Acesso às variáveis e credenciais do ambiente de desenvolvimento
- Modificação do código-fonte e dos arquivos de configuração
- Instalação de backdoors persistentes
- Exfiltração de artefatos do modelo e dados de treinamento
Esses riscos têm precedentes no mundo real. Por exemplo, dados de desenvolvimento de IA acessíveis ao público ou armazenamento em nuvem mal configurado já levaram à exposição de informações confidenciais:
- Dimensione os dados de clientes expostos pela IA por meio do Google Docs público (Business Insider, 2025): https://www.businessinsider.com/scale-ai-public-google-docs-security-2025-6?utm_source=chatgpt.com)
- Ataques de injeção imediata com zero clique em sistemas LLM permitiram a exfiltração remota de dados (arXiv, 2025: https://arxiv.org/abs/2509.10540?utm_source=chatgpt.com)
- Modelos de IA maliciosos podem comprometer as cadeias de suprimentos de software (ACM CACM: https://cacm.acm.org/research/malicious-ai-models-undermine-software-supply-chain-security/?utm_source=chatgpt.com)
Essas vulnerabilidades de injeção de comando são particularmente preocupantes em ambientes de desenvolvimento de IA porque:
- Dados de treinamento de modelos e algoritmos proprietários são frequentemente acessíveis
- As chaves de API e as credenciais de nuvem geralmente são armazenadas em ambientes de desenvolvimento.
- Os pipelines de CI/CD podem ser comprometidos por meio de código injetado ou modificado
Eficiência aprimorada na descoberta de vulnerabilidades com abordagem aumentada de LLM
Aproveitando uma metodologia aumentada pelo Large Language Model (LLM), a Cyera observou melhorias substanciais na eficiência da descoberta de vulnerabilidades:
- Conclusões iniciais: Identificou 6.115 possíveis problemas usando o SEMGREP.
- Redução de triagem: alcançou uma redução de 99,8% nos falsos positivos por meio da análise LLM.
- Tempo até a descoberta: reduziu o tempo entre a verificação inicial e as vulnerabilidades confirmadas para 48 horas.
- Requisitos de revisão manual: Limitados a 12 leads que requerem validação humana, representando 0,2% das descobertas iniciais.
A revisão manual tradicional de 6.115 descobertas exigiria aproximadamente 300—500 horas, assumindo de 3 a 5 minutos por descoberta. A abordagem baseada no LLM condensou isso em 16 horas de trabalho de validação focado.
Ferramentas de IA na pesquisa de segurança
A integração das ferramentas de IA na pesquisa de segurança deu início a uma nova era de automação e eficiência. Por exemplo, a introdução de agentes de IA pela Microsoft em sua plataforma Security Copilot visa automatizar tarefas repetitivas de segurança cibernética, aliviando assim o esgotamento dos analistas e aumentando a eficiência operacional (https://www.axios.com/2025/03/24/microsoft-ai-agents-cybersecurity?utm_source=chatgpt.com).
Da mesma forma, a ferramenta HexStrike baseada em IA foi utilizada para identificar rapidamente vulnerabilidades nos sistemas Citrix, demonstrando o potencial da IA em acelerar a exploração de vulnerabilidades de segurança (https://www.techradar.com/pro/security/new-ai-powered-hexstrike-tool-is-being-used-to-target-multiple-citrix-security-vulnerabilities? utm_source=chatgpt.com).
Além disso, pesquisas como “PentestGPT: uma ferramenta automática de teste de penetração com tecnologia LLM” exploram a aplicação de LLMs em testes de penetração, destacando sua capacidade de automatizar avaliações de segurança complexas (https://arxiv.org/abs/2308.06782?utm_source=chatgpt.com).
Leitura adicional sobre pesquisa de segurança assistida por IA
Para aqueles interessados em se aprofundar no papel da IA na pesquisa de segurança, os seguintes recursos fornecem informações valiosas:
- Auditorias de segurança assistidas por IA: um guia prático com aplicativos do mundo real (https://medium.com/oak-security/ai-assisted-security-audits-0bd76608e3be) — Uma exploração de estruturas de IA que combinam análise estática tradicional com geração de regras baseada em LLM.
- PentestGPT: uma ferramenta automática de teste de penetração com tecnologia LLM (https://arxiv.org/abs/2308.06782) — Um estudo sobre a aplicação de LLMs na automação de processos de teste de penetração.
- Hackeando, de forma preguiçosa: LLM Augmented Pentesting (https://arxiv.org/abs/2409.09493) — Pesquisa sobre a integração de LLMs em fluxos de trabalho de testes de penetração para aumentar a eficiência.
Mitigação
As organizações que usam o Gemini CLI devem atualizar para a versão mais recente imediatamente.
O Google lançou patches que abordam as duas vulnerabilidades.
Para uma defesa em profundidade:
- Restrinja o acesso do sistema de arquivos aos diretórios de instalação do Gemini CLI
- Implemente políticas de execução que limitem os recursos de comando do shell
- Monitore padrões suspeitos de execução de comandos
Agradecimentos
A Cyera agradece à equipe do Programa de Recompensas de Vulnerabilidade do Google por sua resposta rápida e tratamento profissional desses problemas de segurança. A equipe do VRP validou, fez a triagem e coordenou a remediação dentro dos prazos de divulgação padrão.
Conclusão
Esta pesquisa demonstra a eficácia dos testes de segurança aumentados pelo LLM na identificação de vulnerabilidades complexas na infraestrutura de IA moderna. A combinação de escaneamento automatizado, triagem inteligente e validação direcionada reduziu o esforço manual de duas semanas para dois dias, mantendo a alta precisão.
À medida que as ferramentas de IA se tornam cada vez mais integradas aos fluxos de trabalho de desenvolvimento, proteger essas interfaces se torna essencial para proteger a propriedade intelectual, os dados do cliente e a integridade da infraestrutura. As vulnerabilidades descobertas ressaltam a importância da validação abrangente de entradas e os riscos inerentes à construção de comandos shell a partir de entradas controladas pelo usuário.
As organizações que desenvolvem ou implantam ferramentas de linha de comando de IA devem implementar uma validação rigorosa de entrada, evitar a interpolação de comandos do shell e auditar regularmente suas posturas de segurança usando técnicas automatizadas e manuais.





