CVE-2026-20163

7.2 HIGH

📋 TL;DR

This vulnerability allows authenticated Splunk users with the 'edit_cmd' capability to execute arbitrary shell commands via the unarchive_cmd parameter in the indexing preview REST endpoint. It affects Splunk Enterprise and Splunk Cloud Platform versions below specified patched releases. Attackers could gain remote code execution with the privileges of the Splunk process.

💻 Affected Systems

Products:
  • Splunk Enterprise
  • Splunk Cloud Platform
Versions: Splunk Enterprise: below 10.2.0, 10.0.4, 9.4.9, 9.3.10; Splunk Cloud Platform: below 10.2.2510.5, 10.0.2503.12, 10.1.2507.16, 9.3.2411.124
Operating Systems: All supported platforms
Default Config Vulnerable: ⚠️ Yes
Notes: Requires user with 'edit_cmd' capability. This capability is not granted by default but may be assigned in custom role configurations.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise with attacker gaining root/administrator privileges, data exfiltration, lateral movement, and persistent backdoor installation.

🟠

Likely Case

Privilege escalation leading to unauthorized access to sensitive data, system manipulation, and potential ransomware deployment.

🟢

If Mitigated

Limited impact if proper access controls restrict 'edit_cmd' capability to trusted administrators only.

🌐 Internet-Facing: MEDIUM
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated access with specific capability. The vulnerability is straightforward to exploit once access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Splunk Enterprise: 10.2.0, 10.0.4, 9.4.9, 9.3.10 or later; Splunk Cloud Platform: 10.2.2510.5, 10.0.2503.12, 10.1.2507.16, 9.3.2411.124 or later

Vendor Advisory: https://advisory.splunk.com/advisories/SVD-2026-0302

Restart Required: Yes

Instructions:

1. Download appropriate patch from Splunk downloads portal. 2. Backup current installation. 3. Stop Splunk services. 4. Apply patch following Splunk upgrade documentation. 5. Restart Splunk services. 6. Verify version and functionality.

🔧 Temporary Workarounds

Remove edit_cmd capability

all

Temporarily remove the 'edit_cmd' capability from all user roles until patching can be completed.

splunk edit user <username> -role <rolename> -capability -edit_cmd

Restrict REST endpoint access

all

Implement network controls to restrict access to the vulnerable REST endpoint.

🧯 If You Can't Patch

  • Implement strict role-based access control to limit 'edit_cmd' capability to essential administrators only.
  • Deploy network segmentation and firewall rules to restrict access to Splunk management interfaces.

🔍 How to Verify

Check if Vulnerable:

Check Splunk version and compare against affected versions. Verify if any users have 'edit_cmd' capability.

Check Version:

splunk version

Verify Fix Applied:

Confirm Splunk version is at or above patched versions. Test that the unarchive_cmd parameter no longer executes arbitrary commands.

📡 Detection & Monitoring

Log Indicators:

  • Unusual command execution in Splunk logs
  • Access to /splunkd/__upload/indexing/preview with unarchive_cmd parameter
  • Unexpected process creation from Splunk user

Network Indicators:

  • Unusual outbound connections from Splunk server
  • Traffic to unexpected destinations

SIEM Query:

index=_internal source=*splunkd* (unarchive_cmd OR /__upload/indexing/preview) | stats count by user, src_ip

🔗 References

📤 Share & Export