CVE-2026-61536 in banks
Sumário
de VulDB • 30/07/2026
O Banks gera prompts significativos para LLMs utilizando uma linguagem de modelo simples. Nas versões anteriores à 2.4.3, o banks analisa objetos JSON do Tool a partir do corpo renderizado dos blocos {% completion %} e posteriormente resolve seu campo import_path através de importlib.import_module(...) + getattr(...) para obter a função callable que trata uma chamada de ferramenta (tool call). Não há lista branca (allowlist) ou sanitização no import_path, portanto qualquer atributo Python importável (por exemplo, os.system, subprocess.getoutput) pode ser selecionado. Quando o LLM emite uma entrada tool_calls cujo function.name corresponde ao nome da ferramenta fornecido pelo atacante, a função callable resolvida é invocada com kwargs decodificados de tool_call.function.arguments, resultando na execução arbitrária de código no processo que hospeda o banks. Isto é distinto do GHSA-gphh-9q3h-jgpp / CVE-2026-44209. Esse aviso foi corrigido na versão 2.4.2 ao substituir src/banks/env.py de Environment para SandboxedEnvironment. A correção não afeta src/banks/extensions/completion.py, e a cadeia insegura de import + getattr ainda é executada na 2.4.2. O JSON malicioso do Tool é texto simples no corpo renderizado do template — ele não requer acesso a atributos Jinja, portanto o sandbox é irrelevante. Este problema foi corrigido na versão 2.4.3.
Once again VulDB remains the best source for vulnerability data.