Executive Summary
A high-severity remote code execution vulnerability (CVE-2026-20204) affects multiple versions of Splunk Enterprise and Splunk Cloud Platform. The flaw carries a CVSS score of 7.1 and can be exploited by a low-privileged user — one who does not hold the admin or power Splunk roles — to execute arbitrary code remotely through improper handling of temporary files in the $SPLUNK_HOME/var/run/splunk/apptemp directory.
Splunk has released fixed versions and a workaround. Organizations using Splunk Web should treat this as a priority patch given the low privilege bar for exploitation.
Vulnerability Overview
| Attribute | Value |
|---|---|
| CVE ID | CVE-2026-20204 |
| CVSS Score | 7.1 (High) |
| CVSS Vector | CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H |
| Attack Vector | Network |
| Attack Complexity | High |
| Privileges Required | Low (non-admin, non-power role) |
| User Interaction | Required |
| CWE | CWE-377 (Insecure Temporary Files) |
| Affected Component | Splunk Web (apptemp directory) |
| Patch Available | Yes — Splunk April 2026 Advisory |
| Published | April 15, 2026 |
| KEV Status | Not listed |
Affected Products
Splunk Enterprise
| Version Line | Fixed Version |
|---|---|
| 10.2.x | 10.2.1 |
| 10.0.x | 10.0.5 |
| 9.4.x | 9.4.10 |
| 9.3.x | 9.3.11 |
Splunk Cloud Platform
| Version Line | Fixed Version |
|---|---|
| 10.4.x | 10.4.2603.0 |
| 10.3.x | 10.3.2512.5 |
| 10.2.x | 10.2.2510.9 |
| 10.1.x | 10.1.2507.19 |
| 10.0.x | 10.0.2503.13 |
| 9.3.x | 9.3.2411.127 |
Splunk is actively monitoring and remediating Splunk Cloud Platform instances; customers on managed cloud deployments should verify their version is updated.
Technical Analysis
Root Cause
CVE-2026-20204 stems from insufficient isolation and improper handling of temporary files in the $SPLUNK_HOME/var/run/splunk/apptemp directory, which is used by the Splunk Web component during app processing workflows. A low-privileged attacker with access to file upload workflows can place a malicious file in this directory, which is subsequently executed by the Splunk process — resulting in arbitrary code execution under the Splunk service account.
The vulnerability is classified under CWE-377 (Insecure Temporary File), a class of weaknesses where an application creates or uses temporary files in an unsafe manner, allowing attackers to substitute or inject malicious content.
Attack Requirements
The CVSS vector indicates this is not a trivial exploit:
- AC:H — High complexity; specific conditions must be met
- UI:R — User interaction is required (likely an admin action that processes the malicious file)
- PR:L — Low privileges are sufficient (no admin or power role needed)
This means an attacker with a standard Splunk account could craft an attack that triggers when a privileged user interacts with the malicious file in apptemp.
Attack Flow
1. Attacker authenticates to Splunk Web with a low-privileged account
2. Attacker uploads a malicious file via an app upload or similar workflow
that writes to $SPLUNK_HOME/var/run/splunk/apptemp
3. Attacker waits for or triggers a privileged user interaction
(e.g., admin reviewing/processing app submissions)
4. Splunk processes the file without adequate isolation
5. Attacker's payload executes under the Splunk service context
6. Full confidentiality, integrity, and availability impact on the instanceWhy This Matters
Splunk is a cornerstone of enterprise SIEM and log management infrastructure. A successful compromise means:
| Impact Area | Consequence |
|---|---|
| Log Tampering | Attacker can modify or delete security events and investigation artifacts |
| Credential Access | Splunk holds forwarded log credentials, API tokens, and service account data |
| Lateral Movement | Splunk's network access and integrations enable pivoting to monitored systems |
| Blind Spot Creation | Compromising the SIEM eliminates detection capability for concurrent attacks |
| Data Exfiltration | Access to all ingested log data, which may contain sensitive operational information |
Remediation
Step 1: Upgrade Splunk Enterprise
# Check current Splunk version
/opt/splunk/bin/splunk version
# Download and apply the appropriate upgrade
# Refer to Splunk's upgrade documentation at docs.splunk.com
# After upgrade, verify the version
/opt/splunk/bin/splunk versionApply the following minimum versions:
- 10.2.x → upgrade to 10.2.1
- 10.0.x → upgrade to 10.0.5
- 9.4.x → upgrade to 9.4.10
- 9.3.x → upgrade to 9.3.11
Step 2: Workaround — Disable Splunk Web
If immediate patching is not possible, disable Splunk Web as a temporary mitigation:
# Edit $SPLUNK_HOME/etc/system/local/web.conf
[settings]
startwebserver = 0Then restart Splunk:
/opt/splunk/bin/splunk restartNote: Disabling Splunk Web removes the attack surface but also disables the web UI. Manage via CLI or API during this period.
Step 3: Restrict Access to App Upload Workflows
Limit which users can interact with app management functionality. Audit user roles and remove unnecessary permissions:
| rest /services/authorization/roles
| table title, capabilities, imported_capabilities
| where match(capabilities, "admin_all_objects|edit_local_apps")Restrict edit_local_apps capability to the minimum required role set.
Step 4: Monitor the apptemp Directory
# Monitor for unexpected file writes to apptemp
inotifywait -m -r "$SPLUNK_HOME/var/run/splunk/apptemp" \
-e create,modify,close_write \
--format '%T %w %f %e' --timefmt '%Y-%m-%d %H:%M:%S'Detection Guidance
| Indicator | Description |
|---|---|
Unexpected files in apptemp from low-privileged accounts | Direct exploitation indicator |
Splunk process spawning child shells (bash, cmd.exe, python) | Post-exploitation execution |
| Unusual network connections from Splunk service account | Reverse shell or C2 beacon |
File writes to apptemp outside of normal app deployment windows | Suspicious activity |
| Low-privileged users accessing app upload endpoints | Exploitation attempt |
Search for suspicious apptemp activity in Splunk itself:
index=_internal sourcetype=splunkd path="*apptemp*"
| stats count by user, action, path
| where count > 5Post-Remediation Checklist
- Upgrade Splunk Enterprise to the fixed version for your version line
- Verify Splunk Cloud Platform instances are on patched versions
- Audit all user accounts and remove unnecessary capabilities
- Review
apptempdirectory for unexpected or suspicious files - Check Splunk audit logs for low-privileged app upload activity
- Scan the Splunk host for indicators of post-exploitation (web shells, cron jobs)
- Rotate credentials for any service accounts accessible via Splunk
- Consider disabling Splunk Web if it is not required in your deployment
- Enable file integrity monitoring on the
apptempdirectory going forward