CVE-2026-0770: o validador de código do Langflow executa código Python arbitrário
Técnicas e Métodos de Ataque2026-11-06, 13:33
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.
- Execução de comando. Um argumento padrão contém uma expressão que invoca
__import__("subprocess").run(...)para executar um comando do sistema. - 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.
- Extraindo-a da resposta. A função
validate_code()captura a exceção, converte-a em string e a retorna no campofunction.errorsda 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.