Ataque Ghostcommit: Instruções Maliciosas Ocultas em Imagens para Roubo de Dados por Agentes de Código
Uma nova ameaça à cadeia de suprimentos, o ataque Ghostcommit, utiliza imagens para esconder instruções maliciosas que enganam agentes de IA, levando ao vazamento de chaves e configurações sensíveis como arquivos .env. A técnica explora as limitações das ferramentas de revisão de código e de varredura de segredos.
MundiX News·13 de julho de 2026·7 min de leitura·👁 1 views
Uma nova forma de ataque à cadeia de suprimentos, denominada Ghostcommit, foi identificada, capaz de injetar instruções maliciosas disfarçadas em imagens PNG. Essa técnica contorna as ferramentas de revisão de código baseadas em IA, induzindo agentes de código a vazar informações confidenciais, como arquivos de configuração .env e chaves sensíveis. A ASSET Research Group realizou experimentos que demonstraram a eficácia dessa abordagem evasiva.
O princípio do ataque reside na ocultação de cargas maliciosas. Em vez de inserir diretamente comandos para roubar o arquivo .env em um pull request, o que seria prontamente detectado por ferramentas de revisão de código como o bot de revisão de código do Cursor e o CodeRabbit, os pesquisadores dividiram a carga útil. Primeiro, um documento aparentemente inofensivo, AGENTS.md, é adicionado ao repositório. Este documento instrui o agente de código a extrair constantes de construção de uma imagem referenciada, docs/images/build-spec.png. A lógica maliciosa completa está embutida dentro da própria imagem: ela lê o arquivo .env byte a byte e codifica seu conteúdo como uma sequência de números ASCII. Ferramentas de revisão de texto tratam a imagem como um arquivo binário opaco, e o CodeRabbit, por padrão, ignora a revisão de arquivos PNG. Consequentemente, o pull request passa sem alertas, e os bots de vulnerabilidade não emitem nenhum aviso de risco.
O gatilho do ataque não ocorre imediatamente após a fusão do código, mas sim de forma assíncrona. Quando um desenvolvedor, em uma sessão separada, envia uma solicitação de desenvolvimento de funcionalidade regular para o agente de código, a cadeia de ataque é ativada. O agente lê o documento AGENTS.md já mesclado, analisa a imagem alvo conforme instruído, lê o arquivo .env local e gera constantes de nível de módulo (como _PROV_CANARY) na forma de um tupla de centenas de dígitos. Essa sequência numérica, quando decodificada byte a byte, revela o conteúdo completo e em texto puro do arquivo .env. Em um caso de teste prático, a ferramenta Cursor, equipada com o modelo Claude Sonnet, produziu uma tupla contendo 311 dígitos em sua primeira execução, com a chave de API, endereço do banco de dados e credenciais da plataforma de nuvem embutidas na saída aparentemente normal do código. Os atacantes podem então obter todas as credenciais em texto puro simplesmente lendo os registros de commit públicos e decodificando a tupla numérica.
O ataque explora duas principais lacunas de detecção. Primeiro, as dicas maliciosas estão ocultas dentro da imagem, tornando-as invisíveis para revisão manual, varredura por regex e ferramentas de revisão de IA que analisam apenas o conteúdo textual das diferenças. Segundo, os dados confidenciais são disfarçados como tuplas numéricas. Ferramentas tradicionais de varredura de segredos, que buscam características de strings, não conseguem identificar sequências numéricas decodificáveis em caracteres ASCII, portanto, não geram alertas. Pesquisadores testaram 11 combinações de ferramentas de código e modelos de linguagem grande, descobrindo que o sucesso do ataque depende crucialmente do framework de execução da ferramenta, e não do modelo de linguagem subjacente. Ferramentas como Cursor e Antigravity, com certos modelos, demonstraram vazamento completo, enquanto a plataforma Claude Code, com modelos semelhantes, conseguiu bloquear o ataque. Em um cenário de teste extremo, o modelo Opus, embora tenha calculado e emitido dados confidenciais em um ambiente, auto-corrigiu-se ao reconhecer a lógica de engenharia social. No entanto, no ambiente Claude Code, o Opus não leu o documento de especificação, não ativando esse mecanismo de autodefesa.
Em resposta, a equipe de pesquisa desenvolveu um protótipo de ferramenta de revisão de código multimodal para GitHub, baseada no modelo leve e de código aberto Gemma 4. Essa ferramenta, que requer apenas uma GPU com 4GB de VRAM, integra três tipos de capacidades de detecção: reconhecimento de caracteres ocultos, análise de características estruturais de código e validação de modelos de linguagem grande tanto para documentos de especificação quanto para imagens embutidas. Em testes de estresse, a ferramenta interceptou com sucesso 100% de 15 amostras de ataque, sem falsos positivos. De 80 amostras de teste reais desconhecidas, 49 ataques foram interceptados, com todas as variantes de esteganografia de imagem detectadas, e 30 envios de negócios legítimos não foram marcados incorretamente. A equipe de pesquisa disponibilizou o código completo do conceito de prova, incluindo amostras de pull requests com cargas úteis divididas e ferramentas de decodificação numérica, para auxiliar os profissionais de segurança no desenvolvimento de contramedidas.
🛡️⚡
Pare de pesquisar. Comece a hackear.
O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.
Sem cartão para começar · Planos a partir de R$49/mês
Uma nova forma de ataque à cadeia de suprimentos, denominada Ghostcommit, foi identificada, capaz de injetar instruções maliciosas disfarçadas em imagens PNG. Essa técnica contorna as ferramentas de revisão de código baseadas em IA, induzindo agentes de código a vazar informações confidenciais, como arquivos de configuração .env e chaves sensíveis. A ASSET Research Group realizou experimentos que demonstraram a eficácia dessa abordagem evasiva.
O princípio do ataque reside na ocultação de cargas maliciosas. Em vez de inserir diretamente comandos para roubar o arquivo .env em um pull request, o que seria prontamente detectado por ferramentas de revisão de código como o bot de revisão de código do Cursor e o CodeRabbit, os pesquisadores dividiram a carga útil. Primeiro, um documento aparentemente inofensivo, AGENTS.md, é adicionado ao repositório. Este documento instrui o agente de código a extrair constantes de construção de uma imagem referenciada, docs/images/build-spec.png. A lógica maliciosa completa está embutida dentro da própria imagem: ela lê o arquivo .env byte a byte e codifica seu conteúdo como uma sequência de números ASCII. Ferramentas de revisão de texto tratam a imagem como um arquivo binário opaco, e o CodeRabbit, por padrão, ignora a revisão de arquivos PNG. Consequentemente, o pull request passa sem alertas, e os bots de vulnerabilidade não emitem nenhum aviso de risco.
O gatilho do ataque não ocorre imediatamente após a fusão do código, mas sim de forma assíncrona. Quando um desenvolvedor, em uma sessão separada, envia uma solicitação de desenvolvimento de funcionalidade regular para o agente de código, a cadeia de ataque é ativada. O agente lê o documento AGENTS.md já mesclado, analisa a imagem alvo conforme instruído, lê o arquivo .env local e gera constantes de nível de módulo (como _PROV_CANARY) na forma de um tupla de centenas de dígitos. Essa sequência numérica, quando decodificada byte a byte, revela o conteúdo completo e em texto puro do arquivo .env. Em um caso de teste prático, a ferramenta Cursor, equipada com o modelo Claude Sonnet, produziu uma tupla contendo 311 dígitos em sua primeira execução, com a chave de API, endereço do banco de dados e credenciais da plataforma de nuvem embutidas na saída aparentemente normal do código. Os atacantes podem então obter todas as credenciais em texto puro simplesmente lendo os registros de commit públicos e decodificando a tupla numérica.
O ataque explora duas principais lacunas de detecção. Primeiro, as dicas maliciosas estão ocultas dentro da imagem, tornando-as invisíveis para revisão manual, varredura por regex e ferramentas de revisão de IA que analisam apenas o conteúdo textual das diferenças. Segundo, os dados confidenciais são disfarçados como tuplas numéricas. Ferramentas tradicionais de varredura de segredos, que buscam características de strings, não conseguem identificar sequências numéricas decodificáveis em caracteres ASCII, portanto, não geram alertas. Pesquisadores testaram 11 combinações de ferramentas de código e modelos de linguagem grande, descobrindo que o sucesso do ataque depende crucialmente do framework de execução da ferramenta, e não do modelo de linguagem subjacente. Ferramentas como Cursor e Antigravity, com certos modelos, demonstraram vazamento completo, enquanto a plataforma Claude Code, com modelos semelhantes, conseguiu bloquear o ataque. Em um cenário de teste extremo, o modelo Opus, embora tenha calculado e emitido dados confidenciais em um ambiente, auto-corrigiu-se ao reconhecer a lógica de engenharia social. No entanto, no ambiente Claude Code, o Opus não leu o documento de especificação, não ativando esse mecanismo de autodefesa.
Em resposta, a equipe de pesquisa desenvolveu um protótipo de ferramenta de revisão de código multimodal para GitHub, baseada no modelo leve e de código aberto Gemma 4. Essa ferramenta, que requer apenas uma GPU com 4GB de VRAM, integra três tipos de capacidades de detecção: reconhecimento de caracteres ocultos, análise de características estruturais de código e validação de modelos de linguagem grande tanto para documentos de especificação quanto para imagens embutidas. Em testes de estresse, a ferramenta interceptou com sucesso 100% de 15 amostras de ataque, sem falsos positivos. De 80 amostras de teste reais desconhecidas, 49 ataques foram interceptados, com todas as variantes de esteganografia de imagem detectadas, e 30 envios de negócios legítimos não foram marcados incorretamente. A equipe de pesquisa disponibilizou o código completo do conceito de prova, incluindo amostras de pull requests com cargas úteis divididas e ferramentas de decodificação numérica, para auxiliar os profissionais de segurança no desenvolvimento de contramedidas.
📤 Compartilhar & Baixar
🧰 Ferramentas recomendadas
Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.