CVE-2026-61536 in banks
Сводка
по VulDB • 30.07.2026
Banks генерирует осмысленные промпты для больших языковых моделей (LLM) с использованием простого языка шаблонов. В версиях старше 2.4.3 banks парсит объекты Tool JSON из отрендеренного содержимого блоков {% completion %} и затем разрешает их поле import_path через вызовы importlib.import_module(...) + getattr(...), чтобы получить вызываемый объект, обрабатывающий вызов инструмента. Для поля import_path отсутствует белый список или санитизация, поэтому может быть выбран любой импортируемый атрибут Python (например, os.system, subprocess.getoutput). Когда LLM генерирует запись tool_calls, чье function.name совпадает с именем инструмента, предоставленным злоумышленником, разрешенный вызываемый объект запускается с аргументами kwargs, декодированными из tool_call.function.arguments, что приводит к произвольному выполнению кода в процессе, хостящем banks. Эта уязвимость отличается от GHSA-gphh-9q3h-jgpp / CVE-2026-44209. Указанное уведомление было исправлено в версии 2.4.2 путем замены src/banks/env.py с Environment на SandboxedEnvironment. Однако это изменение не затрагивает файл src/banks/extensions/completion.py, и небезопасная цепочка импорта + getattr продолжает выполняться в версии 2.4.2. Вредоносный объект Tool JSON представляет собой обычный текст внутри отрендеренного содержимого шаблона — для его работы не требуется доступ к атрибутам Jinja, поэтому песочница (sandbox) здесь нерелевантна. Данная проблема исправлена в версии 2.4.3.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.