×

n8n: Como uma Falha de Prototype Pollution pode levar ao Controle Total (RCE)

n8n: Como uma Falha de Prototype Pollution pode levar ao Controle Total (RCE)

temp_image_1778197022.42399 n8n: Como uma Falha de Prototype Pollution pode levar ao Controle Total (RCE)

O n8n e a Importância da Segurança em Automações

O n8n consolidou-se como uma das ferramentas de automação de workflow baseada em nós mais poderosas do mercado. Sendo open-source, ele permite conectar aplicativos, bancos de dados e agentes de IA para otimizar tarefas complexas. No entanto, onde há flexibilidade e integração de dados, surgem desafios de segurança.

Recentemente, uma análise técnica revelou uma cadeia de vulnerabilidades impressionante que começa com um detalhe semântico quase invisível e termina com a Execução Remota de Código (RCE) não autenticada no host. Vamos mergulhar nos detalhes técnicos desse processo.

O Ponto de Partida: O Problema no xml2js

A vulnerabilidade tem origem na biblioteca xml2js, amplamente utilizada no ecossistema Node.js para parsing de XML. O problema reside em como a biblioteca processa as requisições dependendo do tipo de conteúdo.

O pesquisador identificou que a xml2js é, na verdade, uma abstração sobre a biblioteca sax. Ao tentar explorar a falha, percebeu-se que a abordagem tradicional de XML External Entity (XXE) era impossível devido à técnica de parsing SAX, que processa o documento como uma sequência de eventos em vez de carregar todo o DOM na memória.

A Armadilha do Prototype Pollution

O verdadeiro perigo surgiu com o Prototype Pollution. Embora a falha CVE-2023-0842 já fosse conhecida, a implementação no n8n apresentava uma nuance: os valores injetados eram encapsulados em arrays (ex: ["constructor"]) devido à normalização do CoffeeScript (linguagem na qual a biblioteca foi escrita) ao ser compilada para JavaScript.

Essa característica tornava a exploração difícil, pois não era possível sobrescrever métodos ou propriedades diretamente. No entanto, através de experimentação exaustiva, descobriu-se que era possível manipular referências de objetos via nós de Edit Fields dentro do próprio n8n.

A Escala: Do Bug à Execução de Código (RCE)

Ter a capacidade de poluir o protótipo de um objeto é perigoso, mas para chegar ao RCE, é necessário encontrar um gadget — um trecho de código legítimo que utilize o objeto poluído de forma insegura.

A Busca pelo Gadget Ideal

  • Tentativa 1 (spawn): No Node.js, a função spawn é um alvo comum. Contudo, as versões recentes do Node.js mitigaram a maioria dos ataques via poluição de opções.
  • Tentativa 2 (Community Nodes): Foi possível criar um nó comunitário malicioso, mas isso exigiria privilégios de Administrador, o que tornaria o exploit redundante.
  • O Caminho do Sucesso (Git.node.ts): A vulnerabilidade real foi encontrada no Git.node.ts, que utiliza o pacote simple-git. Este pacote permite a modificação do objeto de ambiente (env), que posteriormente é passado para a função spawn.

O Golpe Final: GIT_SSH_COMMAND

Ao explorar a variável de ambiente GIT_SSH_COMMAND, o atacante consegue executar comandos arbitrários antes de qualquer operação de Git via SSH. O fluxo do ataque simplificado seria:

  1. Configurar um Webhook no n8n para receber payloads XML.
  2. Utilizar a falha de xml2js para poluir o Object.prototype.
  3. Através do nó Edit Fields, injetar o comando malicioso na variável GIT_SSH_COMMAND.
  4. Disparar a operação de Git para executar o comando no sistema operacional do host.

Lições Aprendidas e Como se Proteger

Este caso demonstra que mesmo vulnerabilidades classificadas como de “baixa severidade” (como Prototype Pollution) podem se tornar críticas quando combinadas em uma cadeia de exploração. Para garantir a segurança do seu ambiente n8n, recomenda-se:

  • Mantenha o n8n Atualizado: Atualizações constantes corrigem falhas em bibliotecas de terceiros.
  • Cuidado com Nós Comunitários: Instale apenas pacotes de fontes confiáveis e auditadas.
  • Princípio do Menor Privilégio: Execute o n8n em containers isolados (como Docker) com permissões limitadas de usuário.
  • Estude o OWASP: Familiarize-se com as vulnerabilidades de OWASP Top 10 para entender melhor os vetores de ataque modernos.

A automação é o futuro da produtividade, mas a segurança deve caminhar lado a lado com a eficiência.

Compartilhar: