Detect CVE-2026-47668: DbGate Unauthenticated RCE via JSON Script Runner in Google Chronicle
Detects exploitation of CVE-2026-47668, a critical unauthenticated remote code execution vulnerability in dbgate-serve <= 7.1.8. The JSON Script Runner endpoint accepts and executes arbitrary JavaScript/JSON payloads without authentication, allowing attackers to achieve full server compromise. A public PoC is available.
MITRE ATT&CK
- Tactic
- Initial Access Execution Persistence Impact
YARA-L Detection Query
rule cve_2026_47668_dbgate_unauth_rce {
meta:
author = "df00tech Detection Engineering"
description = "Detects unauthenticated POST requests to dbgate-serve script runner endpoints (CVE-2026-47668)"
severity = "CRITICAL"
confidence = "HIGH"
reference = "https://github.com/dbgate/dbgate/security/advisories/GHSA-8v3q-9vmx-36vc"
cve = "CVE-2026-47668"
events:
$http.metadata.event_type = "NETWORK_HTTP"
$http.network.http.method = "POST"
(
re.regex($http.network.http.request_url, `(?i).*/script/(run|execute).*`) or
re.regex($http.network.http.request_url, `(?i).*/run-script.*`) or
re.regex($http.network.http.request_url, `(?i).*/api/script.*`)
)
not re.regex($http.network.http.request_headers, `(?i)authorization:`)
$src_ip = $http.principal.ip
condition:
$http
} Chronicle YARA-L rule detecting unauthenticated POST requests to dbgate script runner endpoints by inspecting HTTP method, URL path, and absence of Authorization headers.
Data Sources
Required Tables
False Positives & Tuning
- Internal services using dbgate API without Authorization headers in trusted network segments
- Load balancer health checks hitting the API endpoint
- Misconfigured log ingestion that drops authorization header fields
Other platforms for CVE-2026-47668
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1CVE-2026-47668 PoC — Unauthenticated Script Execution via curl
Expected signal: HTTP POST to /script/run with JSON body containing require('child_process'); Node.js spawns a child process (execve syscall with ppid=node); file /tmp/pwned.txt created by node process user
- Test 2CVE-2026-47668 — Reverse Shell Payload via Script Runner
Expected signal: Node.js spawns /bin/sh child process; outbound TCP connection from node process to ATTACKER_IP:4444 visible in netflow and EDR network telemetry
- Test 3CVE-2026-47668 — Version Fingerprinting and Endpoint Discovery
Expected signal: Multiple GET and POST requests to dbgate host from single source IP in short succession; POST to /script/run with simple JS payload; file write event from node process
Unlock Pro Content
Get the full detection package for CVE-2026-47668 including response playbook, investigation guide, and atomic red team tests.