CVE-2026-76395 Overview
CVE-2026-76395 is an insecure deserialization vulnerability in Splunk AI Toolkit versions below 6.0.0. A user holding the power Splunk role can execute arbitrary code on the Splunk server by loading a crafted model file. The flaw resides in a model codec that deserializes sparse matrix data without guarding against embedded pickle content [CWE-502]. Exploitation requires authenticated access with the power role but no user interaction, making it a practical post-authentication remote code execution path against Splunk deployments running the AI Toolkit.
Critical Impact
Authenticated attackers with the power role can execute arbitrary code on the Splunk server, leading to full compromise of confidentiality, integrity, and availability.
Affected Products
- Splunk AI Toolkit versions below 6.0.0
- Splunk deployments with the AI Toolkit app installed
- Splunk Machine Learning Toolkit workflows relying on the vulnerable codec
Discovery Timeline
- 2026-08-19 - CVE-2026-76395 published to NVD
- 2026-08-20 - Last updated in NVD database
Technical Details for CVE-2026-76395
Vulnerability Analysis
The vulnerability stems from unsafe deserialization of sparse matrix data within a Splunk AI Toolkit model codec. Python's pickle module can execute arbitrary code during deserialization when it encounters crafted objects with malicious __reduce__ methods. The Splunk AI Toolkit codec loads sparse matrix payloads without validating that the underlying serialized stream is free of pickle opcodes.
An authenticated user with the power Splunk role can upload or reference a model file containing a malicious sparse matrix. When the toolkit loads that model, the embedded pickle content is deserialized and executes attacker-controlled code in the context of the Splunk process. This yields code execution on the Splunk server, which typically has broad access to indexed data and internal configuration.
Root Cause
The root cause is trust in serialized model data. The codec treats sparse matrix payloads as data-only structures, yet the underlying serialization format permits pickle streams. Without stripping or rejecting pickle opcodes before deserialization, any user permitted to load models can smuggle executable payloads into the server. This is a textbook instance of CWE-502: Deserialization of Untrusted Data.
Attack Vector
Exploitation is network-reachable and requires authenticated access with the power role. The attacker crafts a model file whose sparse matrix component contains a pickle payload wrapping a system command or reverse shell. The attacker then triggers model loading through the AI Toolkit interface, at which point the crafted opcodes execute during deserialization. See the Splunk Security Advisory SVD-2026-0808 for vendor-authoritative technical details.
Detection Methods for CVE-2026-76395
Indicators of Compromise
- Unexpected model files uploaded to the AI Toolkit lookups or model directories by power role users
- Splunk process (splunkd, Python helper processes) spawning shells, curl, wget, or scripting interpreters
- Outbound network connections from Splunk servers to unfamiliar hosts following model load operations
- Modifications to model artifacts containing serialized sparse matrix data with embedded pickle opcodes (\\x80\\x04, c__builtin__, posix system)
Detection Strategies
- Audit Splunk role assignments and enumerate every account granted the power role
- Inspect AI Toolkit model files for pickle magic bytes and disallowed opcodes prior to load
- Correlate splunkd child process telemetry with model load events in application logs
- Alert on file writes to model storage paths originating from non-administrative accounts
Monitoring Recommendations
- Ingest Splunk audit logs into a centralized analytics platform and monitor saved search and MLTK command usage
- Track process ancestry on Splunk hosts to catch shell or interpreter spawns from Splunk-owned processes
- Baseline outbound network activity from Splunk servers and alert on deviations after model operations
How to Mitigate CVE-2026-76395
Immediate Actions Required
- Upgrade Splunk AI Toolkit to version 6.0.0 or later as directed in SVD-2026-0808
- Review and reduce the number of users assigned the power Splunk role
- Inventory existing model files and remove any of unknown provenance
- Restrict file upload capabilities to trusted administrators during remediation
Patch Information
Splunk addressed the vulnerability in Splunk AI Toolkit version 6.0.0. Administrators should install the fixed release through the Splunk app management workflow. Refer to the vendor advisory Splunk Security Advisory SVD-2026-0808 for exact upgrade instructions and supported versions.
Workarounds
- Revoke the power role from accounts that do not require model management privileges
- Block model file uploads at the reverse proxy or web application firewall until patching completes
- Isolate Splunk servers running the AI Toolkit from sensitive network segments
- Enforce code review and integrity checks on any model artifact before it is loaded into the toolkit
# Verify installed Splunk AI Toolkit version
$SPLUNK_HOME/bin/splunk display app Splunk_ML_Toolkit
# List users holding the power role
$SPLUNK_HOME/bin/splunk list user | grep -i power
# Remove the power role from a non-essential account
$SPLUNK_HOME/bin/splunk edit user <username> -role user -auth admin:<password>
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

