Detect Drupal Core SQL Injection Exploitation (CVE-2026-9082) in Elastic Security
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
Elastic Detection Query
sequence by source.ip with maxspan=5m
[network where event.dataset in ("nginx.access", "apache.access", "iis.access") and
url.query : ("*union*select*", "*insert*into*", "*drop*table*", "*exec(*", "*xp_cmdshell*", "*information_schema*", "*sleep(*", "*benchmark(*", "*waitfor*delay*", "*char(*", "*0x*") and
url.path : ("/node*", "/user*", "/admin*", "/api*", "/jsonapi*", "/views*", "/search*")]
[network where event.dataset in ("nginx.access", "apache.access", "iis.access") and
http.response.status_code in (200, 302, 500) and
url.query : ("*union*select*", "*insert*into*", "*drop*table*", "*exec(*", "*information_schema*")] EQL sequence query detecting SQL injection attempts against Drupal followed by a successful or server-error response, indicating potential successful exploitation.
Data Sources
Required Tables
False Positives & Tuning
- Authorized penetration testing generating SQLi sequences with varied response codes
- Automated security scanning tools that follow up initial probes with validation requests
- Drupal modules that generate multi-step requests with query parameters resembling SQL syntax
- Load balancer health checks hitting Drupal endpoints in sequence
- Search crawlers indexing Drupal content that triggers SQL-keyword filters
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.