CVE-2026-20253: Splunk Enterprise Missing Authentication for Critical Function
Detects exploitation attempts targeting CVE-2026-20253, a missing authentication vulnerability (CWE-306) in Splunk Enterprise. This KEV-listed vulnerability allows unauthenticated access to critical Splunk functions. Attackers may leverage this to execute searches, exfiltrate data, or manipulate Splunk configurations without valid credentials.
Vulnerability Intelligence
KEV — Known ExploitedAffected Software
- Vendor
- Splunk
- Product
- Enterprise
Weakness (CWE)
Timeline
- Disclosed
- June 18, 2026
References & Proof of Concept
- https://advisory.splunk.com/advisories/SVD-2026-0603
- https://www.cisa.gov/news-events/directives/bod-26-04-prioritizing-security-updates-based-risk
- https://www.cisa.gov/news-events/directives/bod-26-04-implementation-guidance-prioritizing-security-updates-based-risk
- https://nvd.nist.gov/vuln/detail/CVE-2026-20253
CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
What is CVE-2026-20253 CVE-2026-20253: Splunk Enterprise Missing Authentication for Critical Function?
CVE-2026-20253: Splunk Enterprise Missing Authentication for Critical Function (CVE-2026-20253) maps to the Initial Access and Persistence and Collection tactics — the adversary is trying to get into your network in MITRE ATT&CK.
This page provides production-ready detection logic for CVE-2026-20253: Splunk Enterprise Missing Authentication for Critical Function, covering the data sources and telemetry it touches: CommonSecurityLog, W3CIISLog, Azure Firewall Logs. The queries below are rated critical severity at medium confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.
MITRE ATT&CK
- Tactic
- Initial Access Persistence Collection
union isfuzzy=true
(
CommonSecurityLog
| where DeviceVendor =~ "Splunk"
| where RequestURL has_any ("/services/search/jobs", "/services/data/inputs", "/services/admin", "/services/authentication", "/en-US/splunkd/__raw/services")
| where isempty(AdditionalExtensions) or AdditionalExtensions !has "authToken"
| where RequestMethod in ("POST", "GET", "DELETE")
| project TimeGenerated, SourceIP, DestinationIP, RequestURL, RequestMethod, DeviceVendor, DeviceProduct, EventOutcome
),
(
W3CIISLog
| where csUriStem has_any ("/services/search/jobs", "/services/data/inputs", "/services/admin", "/services/authentication")
| where isempty(csUsername) or csUsername == "-"
| where csMethod in ("POST", "GET", "DELETE")
| project TimeGenerated, cIP, csUriStem, csMethod, scStatus, csUsername
)
| where TimeGenerated > ago(24h) Detects unauthenticated HTTP requests to sensitive Splunk Enterprise API endpoints that require authentication. Looks for requests lacking authentication tokens/usernames to critical Splunk service paths.
Data Sources
Required Tables
False Positives
- Health check probes or monitoring agents that hit Splunk endpoints without credentials
- Internal network scanners performing asset inventory against Splunk ports
- Splunk forwarder registration traffic that may appear unauthenticated in some log parsers
- Load balancer or reverse proxy health checks targeting Splunk REST API paths
Sigma rule & cross-platform mapping
The detection logic for CVE-2026-20253: Splunk Enterprise Missing Authentication for Critical Function (CVE-2026-20253) above is provided in a vendor-neutral
form so you can deploy it on any SIEM. The same logic is shipped here as native
KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the
following logsource:
logsource:
category: network_connection
product: windows Browse the community-maintained Sigma rules for this technique:
Platform-specific guides for CVE-2026-20253
References (4)
- https://advisory.splunk.com/advisories/SVD-2026-0603
- https://www.cisa.gov/news-events/directives/bod-26-04-prioritizing-security-updates-based-risk
- https://www.cisa.gov/news-events/directives/bod-26-04-implementation-guidance-prioritizing-security-updates-based-risk
- https://nvd.nist.gov/vuln/detail/CVE-2026-20253
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 1Unauthenticated Splunk Search Job Creation via REST API
Expected signal: HTTP POST to port 8089 without Authorization header; Splunk web_access.log entry with null/anonymous user; network flow record to TCP/8089
- Test 2Unauthenticated Splunk User Enumeration via REST API
Expected signal: HTTP GET to /services/authentication/users on port 8089 without credentials; response body containing user list if vulnerable
- Test 3Unauthenticated Splunk Index Listing and Data Access
Expected signal: Sequential unauthenticated GET and POST requests to Splunk REST API; multiple different /services/ paths accessed from same source IP within short timeframe
- Test 4Unauthenticated Splunk Configuration Modification Attempt
Expected signal: HTTP POST to /services/data/inputs/ without Authorization header; Splunk audit log entry for configuration change with anonymous user context
Response Playbook
Triage
- Verify Splunk Enterprise version against affected versions listed in SVD-2026-0603 and confirm patch status immediately.
- Review Splunk internal audit logs (_audit index) for search job creation, configuration changes, or data input modifications that occurred without authenticated sessions during the exposure window.
- Identify the source IPs making unauthenticated requests — correlate against threat intelligence feeds and your organization's known IP inventory to distinguish external attackers from misconfigured internal tools.
- Check Splunk REST API access logs for evidence of data exfiltration: large search results exported, index listing commands, or credential harvesting via /services/authentication/users endpoints.
Containment
- If exploitation is confirmed or strongly suspected, immediately isolate the Splunk instance from the network by blocking inbound traffic to ports 8000, 8089, and 9997 at the firewall/NSG level until patching is complete.
- Rotate all Splunk authentication tokens, service account passwords, and any credentials that Splunk had access to (indexed credentials, inputs requiring auth, forwarder management credentials) as they may have been exfiltrated.
- Apply vendor patch from SVD-2026-0603 immediately; if patch cannot be applied within 24 hours due to CISA BOD-26-04, implement WAF rules to block unauthenticated requests to /services/* paths as a temporary compensating control.
Evidence Collection
- Export the Splunk _audit index for the full suspected exposure window: search `index=_audit action=search OR action=edit OR action=create earliest=-30d` and preserve as immutable evidence.
- Capture network flow logs (NetFlow/IPFIX) showing connections to Splunk ports 8000 and 8089 for the exposure period, including byte counts to assess potential data exfiltration volume.
- Collect Splunk server-side logs from $SPLUNK_HOME/var/log/splunk/ (splunkd.log, web_access.log, audit.log) before any patching or restart that may rotate logs.
Escalation Criteria
- ! Escalate immediately to CISO and IR team if unauthenticated requests resulted in successful 200/201 responses to search job creation or admin configuration endpoints — active exploitation is confirmed.
- ! Escalate to legal and compliance teams if Splunk indexes contain PII, PHI, financial data, or credentials, as data exfiltration through this vulnerability may trigger breach notification obligations.
Investigation Guide
Forensic Artifacts
- >
Splunk web_access.log entries showing HTTP 200 responses to /services/ paths without session cookies or Authorization headers - >
$SPLUNK_HOME/var/log/splunk/audit.log entries for search job creation events with null or anonymous user context - >
Network flow records showing sustained connections from external IPs to TCP/8089 (Splunk management port) - >
Splunk _audit index: `index=_audit action=* user=- OR user=anonymous` revealing unauthenticated actions taken
Tuning Guidance
Start with confidence:medium due to the difficulty of reliably detecting missing authentication from network logs alone. Tune by: (1) enriching with Splunk's own audit logs to correlate unauthenticated network requests with actual unauthenticated actions in Splunk; (2) establishing a baseline of legitimate internal tools hitting Splunk APIs without standard auth headers and allowlisting their IPs; (3) increasing severity threshold to require both the unauthenticated request AND a successful HTTP response code (200/201) before alerting; (4) reducing noise from Splunk forwarder traffic by filtering on destination port — forwarders primarily use 9997 while REST API exploitation targets 8089.
Hunting Queries
Threat hunt across 30 days of proxy/network logs to identify source IPs with sustained or high-volume access to Splunk REST API paths, potentially indicating automated exploitation or reconnaissance.
CommonSecurityLog
| where TimeGenerated > ago(30d)
| where DeviceVendor =~ "Splunk" or DestinationPort in (8000, 8089, 9997)
| where RequestURL has_any ("/services/", "/en-US/")
| summarize RequestCount=count(), UniquePaths=dcount(RequestURL), FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated) by SourceIP
| where RequestCount > 10
| join kind=leftouter (ThreatIntelligenceIndicator | where isnotempty(NetworkIP)) on $left.SourceIP == $right.NetworkIP
| project SourceIP, RequestCount, UniquePaths, FirstSeen, LastSeen, ThreatType
| sort by RequestCount desc index=proxy OR index=web earliest=-30d
(dest_port=8000 OR dest_port=8089 OR dest_port=9997)
| search uri_path="/services/*" OR uri_path="/en-US/*"
| bucket _time span=1h
| stats count as requests dc(uri_path) as unique_paths by src_ip _time
| where requests > 5
| eval hour=strftime(_time, "%Y-%m-%d %H:00")
| sort -requests Atomic Red Team Tests
Attempts to create a Splunk search job without providing authentication credentials, simulating CVE-2026-20253 exploitation to verify if the authentication bypass is present.
Command
curl -sk -X POST 'https://SPLUNK_HOST:8089/services/search/jobs' --data 'search=search index=* | head 10' -H 'Content-Type: application/x-www-form-urlencoded' -w '\nHTTP_STATUS:%{http_code}\n' Cleanup
No persistent changes; search job will expire. If job was created, remove with: curl -sk -X DELETE 'https://SPLUNK_HOST:8089/services/search/jobs/JOB_ID' Expected Telemetry
HTTP POST to port 8089 without Authorization header; Splunk web_access.log entry with null/anonymous user; network flow record to TCP/8089
Expected Detection
Alert on unauthenticated POST to /services/search/jobs returning HTTP 200 or 201 status code
Attempts to list Splunk user accounts without authentication, testing if the missing auth vulnerability allows enumeration of credentials and user information.
Command
curl -sk 'https://SPLUNK_HOST:8089/services/authentication/users?output_mode=json' -H 'Accept: application/json' -w '\nHTTP_STATUS:%{http_code}\n' Cleanup
No changes made — read-only request Expected Telemetry
HTTP GET to /services/authentication/users on port 8089 without credentials; response body containing user list if vulnerable
Expected Detection
Alert on unauthenticated GET to /services/authentication/* endpoints, particularly if response returns HTTP 200 with JSON user data
Enumerates available Splunk indexes without authentication, assessing the scope of data accessible through the missing authentication vulnerability.
Command
curl -sk 'https://SPLUNK_HOST:8089/services/data/indexes?output_mode=json&count=100' -H 'Accept: application/json' -w '\nHTTP_STATUS:%{http_code}\n' && curl -sk -X POST 'https://SPLUNK_HOST:8089/services/search/jobs/export' --data 'search=| rest /services/data/indexes&output_mode=json' -w '\nHTTP_STATUS:%{http_code}\n' Cleanup
No changes made — read-only enumeration requests Expected Telemetry
Sequential unauthenticated GET and POST requests to Splunk REST API; multiple different /services/ paths accessed from same source IP within short timeframe
Expected Detection
Alert on unauthenticated enumeration pattern: multiple distinct Splunk API paths accessed sequentially without authentication, indicating reconnaissance phase of exploitation
Attempts to modify Splunk data inputs or server configuration without authentication, representing the highest-impact exploitation scenario for CVE-2026-20253.
Command
curl -sk -X POST 'https://SPLUNK_HOST:8089/services/data/inputs/monitor' --data 'name=/tmp/test_cve_2026_20253&index=main&sourcetype=test' -H 'Content-Type: application/x-www-form-urlencoded' -w '\nHTTP_STATUS:%{http_code}\n' Cleanup
If monitor input was created, remove with: curl -sk -X DELETE 'https://SPLUNK_HOST:8089/services/data/inputs/monitor/%2Ftmp%2Ftest_cve_2026_20253' (with valid auth after patching) Expected Telemetry
HTTP POST to /services/data/inputs/ without Authorization header; Splunk audit log entry for configuration change with anonymous user context
Expected Detection
Critical alert on unauthenticated POST to /services/data/inputs/ or /services/admin/ endpoints — this represents confirmed exploitation with potential for persistent access