CVE-2026-0770: o validador de código do Langflow executa código Python arbitrário

Um pesquisador publicou uma análise da vulnerabilidade CVE-2026-0770 no Langflow, uma plataforma para construir agentes de IA visualmente. A falha permite que um atacante não autenticado execute código arbitrário no servidor com privilégios de root. A vulnerabilidade recebeu uma pontuação CVSS de 9,8, foi adicionada ao catálogo Known Exploited Vulnerabilities (KEV) e afeta versões do Langflow até a 1.7.3 inclusive..
Qual é o problema? A função validate_code() em src/backend/base/langflow/utils/validate.py analisa o código fornecido em uma AST, compila definições de funções e executa o código resultante usando exec(). O validador não inspeciona os corpos das funções em busca de construções perigosas. Em vez disso, ele apenas verifica se uma exceção é levantada durante a execução. Em outras palavras, a validação de código é efetivamente execução de código.
Como o exploit funciona O ataque não exige que o código malicioso seja colocado no corpo da função. A técnica explora um recurso do Python: expressões de argumentos padrão são avaliadas no momento da definição da função, antes que o objeto da função seja criado.
  1. Execução de comando. Um argumento padrão contém uma expressão que invoca __import__("subprocess").run(...) para executar um comando do sistema.
  2. Retornando o resultado. A saída do comando é passada para uma expressão lambda que deliberadamente levanta uma exceção com uma mensagem contendo a saída capturada.
  3. Extraindo-a da resposta. A função validate_code() captura a exceção, converte-a em string e a retorna no campo function.errors da resposta JSON. É assim que a saída do comando é retornada ao atacante. O corpo da função em si permanece vazio (pass). Um analisador estático que verifica apenas o corpo não detectará nada suspeito. O validador compila e executa o bytecode que avalia o argumento padrão, e é nessa avaliação que o payload é executado.
Vulnerabilidades
Fornecedor
Produto