Затронутые версии Flowintel неправильно доверяют ключам конфигурации, предоставленным конечной точке обновления настроек оповещений. Хотя значения конфигурации были нормализованы до литералов Python, соответствующие ключи использовались непосредственно при создании и замене строк в conf/config_module.py. Уязвимый код использовал ключи, контролируемые запрашивающей стороной, как в регулярном выражении, так и в сгенерированном присваивании: f'{key} = {py_val}' и добавил назначение, если ключ еще не присутствовал.
Модифицированный модуль конфигурации Python впоследствии был перезагружен с помощью importlib.reload(). Это создает границу генерации кода, в которой специально созданные ключи конфигурации могут изменить исходную структуру Python и привести к выполнению операторов Python, контролируемых злоумышленником. Затронутая версия >=3.3.0
Показать оригинальное описание (EN)
Affected versions of Flowintel improperly trust configuration keys supplied to the alerts settings update endpoint. While configuration values were normalized to Python literals, the corresponding keys were used directly when constructing and replacing lines in conf/config_module.py. The vulnerable code used requester-controlled keys in both the regular expression and the generated assignment: f'{key} = {py_val}' and appended an assignment if the key was not already present. The modified Python configuration module was subsequently reloaded using importlib.reload(). This creates a code-generation boundary in which specially crafted configuration keys can alter the Python source structure and result in execution of attacker-controlled Python statements. Version impacted >=3.3.0
Характеристики атаки
Последствия
Строка CVSS v4.0