Detect Drupal Core SQL Injection Exploitation (CVE-2026-9082) in Splunk
Detects exploitation attempts targeting CVE-2026-9082, a SQL injection vulnerability in Drupal Core. This KEV-listed vulnerability allows attackers to inject malicious SQL via crafted HTTP requests, potentially leading to unauthorized data access, credential theft, or remote code execution via stacked queries. Active exploitation has been observed in the wild.
MITRE ATT&CK
SPL Detection Query
index=web OR index=proxy sourcetype=access_combined OR sourcetype=iis OR sourcetype=nginx:access OR sourcetype=apache:access
| where match(uri_query, "(?i)(union\s+select|select\s+.*from|insert\s+into|drop\s+table|exec\s*\(|xp_cmdshell|information_schema|sleep\s*\(|benchmark\s*\(|waitfor\s+delay|char\s*\(|0x[0-9a-fA-F]+|--|%27|%3D|%3B)")
| where match(uri_path, "(?i)(/node|/user|/admin|/api|/jsonapi|/views|/search|/comment|/webform)")
| eval decoded_query=urldecode(uri_query)
| eval is_drupal_path=if(match(uri_path, "(?i)(/node|/user|/admin|/api|/jsonapi|/views)"), 1, 0)
| stats count as attempt_count, values(uri_path) as targeted_paths, values(status) as response_codes, values(http_method) as methods, dc(uri_path) as distinct_paths by src_ip, _time span=5m
| where attempt_count > 1
| sort -attempt_count
| rename src_ip as SourceIP, attempt_count as SQLiAttempts Detects SQL injection attempts against Drupal paths by analyzing HTTP access logs for SQLi patterns in URI query strings, aggregated by source IP in 5-minute windows.
Data Sources
Required Sourcetypes
False Positives & Tuning
- Authorized vulnerability scanners (Burp Suite, Nessus, Qualys) performing scheduled scans
- Penetration testing engagements targeting the Drupal environment
- Legitimate search queries containing SQL-like reserved words in Drupal's search API
- WAF or IDS testing generating synthetic SQLi traffic
- Automated CMS health-check tools that probe common endpoints
Other platforms for CVE-2026-9082
Testing Methodology
Validate this detection against 4 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 1Drupal SQLi - Boolean-Based Blind Injection via Node Path
Expected signal: Web server access logs will show two requests to /node/1 with URL-encoded SQL payloads (AND 1=1 and AND 1=2). First request should return 200, second may return 200 or 404 depending on injection success. SIEM should capture both entries with decoded URI showing SQL keywords.
- Test 2Drupal SQLi - Time-Based Blind Injection via User Login
Expected signal: Web server logs capture POST to /user/login with SLEEP(5) in POST body. PHP error logs may show PDO exception. Response time of approximately 5+ seconds visible in access log timing field. Database slow query log will show the injected SLEEP query.
- Test 3Drupal SQLi - UNION-Based Schema Enumeration via JSON:API
Expected signal: Access logs show GET request to /jsonapi/node/article with UNION SELECT and information_schema in URL parameters. Response code will be 200 or 500 depending on injection success. Database logs may show the injected UNION query. PHP error logs may expose column count mismatches.
- Test 4Drupal SQLi - Error-Based Injection for Database Version Fingerprinting
Expected signal: Web server logs record GET request to /views/ajax with EXTRACTVALUE and VERSION() payloads. HTTP 500 response likely with MySQL XPATH syntax error in response body revealing database version. SIEM captures 0x hex encoding and VERSION() function in URI.
Unlock Pro Content
Get the full detection package for CVE-2026-9082 including response playbook, investigation guide, and atomic red team tests.