Dagu — это механизм рабочего процесса со встроенным пользовательским веб-интерфейсом. В версиях до 1.16.7 включительно конечная точка API CreateNewDAG (POST /api/v1/dags) не проверяет имя DAG перед передачей его в хранилище файлов. Аутентифицированный пользователь с разрешениями на запись DAG может записывать произвольные файлы YAML в любом месте файловой системы (ограниченно разрешениями процесса).
Поскольку dagu выполняет файлы DAG как команды оболочки, запись вредоносного DAG в каталог DAGs другого экземпляра или перезапись файлов конфигурации может привести к удаленному выполнению кода. Коммит e2ed589105d79273e4e6ac8eb31525f765bb3ce4 устраняет проблему.
Показать оригинальное описание (EN)
Dagu is a workflow engine with a built-in Web user interface. In versions up to and including 1.16.7, the `CreateNewDAG` API endpoint (`POST /api/v1/dags`) does not validate the DAG name before passing it to the file store. An authenticated user with DAG write permissions can write arbitrary YAML files anywhere on the filesystem (limited by the process permissions). Since dagu executes DAG files as shell commands, writing a malicious DAG to the DAGs directory of another instance or overwriting config files can lead to remote code execution. Commit e2ed589105d79273e4e6ac8eb31525f765bb3ce4 fixes the issue.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
Затронутые конфигурации ПО 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Dagu Dagu
cpe:2.3:a:dagu:dagu:*:*:*:*:*:*:*:*
|
— |
<= 1.16.7
|