CVE-2026-38950: AnomalyMatch: RCE via torch.load() unsafe deserialization
HIGHESA AnomalyMatch before version 1.3.1 exposes a remote code execution vulnerability rooted in the use of Python's pickle-based torch.load() without the safe weights_only=True constraint, allowing any attacker who can write a crafted checkpoint file to the session directory to achieve arbitrary code execution on the host. Although no CVSS score has been assigned and no public exploit exists yet, the torch.load() pickle deserialization attack class is extensively documented — tooling to craft malicious checkpoints is publicly available, requiring only file-write access to weaponize. Teams running AnomalyMatch in anomaly detection pipelines — particularly in aerospace, industrial, or OT environments where this ESA tool sees real use — should upgrade to version 1.3.1 immediately; as an interim measure, restrict write access to session directories and audit all existing checkpoint files with picklescan or fickling before the next load cycle.
What is the risk?
Medium-High for organizations using AnomalyMatch in production AI/ML pipelines. The underlying torch.load() pickle deserialization vector is a well-understood, reliably exploitable attack class with publicly available weaponization tooling. Exploitability hinges on achieving write access to the session directory, which is the primary constraint — but misconfigured shared storage, adjacent system compromise, or SSRF vulnerabilities in data ingestion pipelines all provide viable paths. ML worker processes frequently run with elevated privileges or broad network access, amplifying post-exploitation impact significantly.
Attack Kill Chain
Severity & Risk
Attack Surface
What should I do?
6 steps-
Upgrade ESA AnomalyMatch to version 1.3.1 (fix available in PR #9 on GitHub).
-
Until patched, replace any torch.load() calls in custom code or forks with torch.load(path, weights_only=True) to enforce safe deserialization.
-
Restrict write access to session directories to trusted, minimal process accounts using filesystem ACLs.
-
Audit existing checkpoint files with picklescan or fickling to detect embedded malicious payloads before they are loaded.
-
Implement integrity verification — hash checks or cryptographic signing — for all model checkpoint files before loading.
-
Monitor for unexpected child process spawning from ML worker processes as a behavioral detection signal.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-38950?
ESA AnomalyMatch before version 1.3.1 exposes a remote code execution vulnerability rooted in the use of Python's pickle-based torch.load() without the safe weights_only=True constraint, allowing any attacker who can write a crafted checkpoint file to the session directory to achieve arbitrary code execution on the host. Although no CVSS score has been assigned and no public exploit exists yet, the torch.load() pickle deserialization attack class is extensively documented — tooling to craft malicious checkpoints is publicly available, requiring only file-write access to weaponize. Teams running AnomalyMatch in anomaly detection pipelines — particularly in aerospace, industrial, or OT environments where this ESA tool sees real use — should upgrade to version 1.3.1 immediately; as an interim measure, restrict write access to session directories and audit all existing checkpoint files with picklescan or fickling before the next load cycle.
Is CVE-2026-38950 actively exploited?
No confirmed active exploitation of CVE-2026-38950 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-38950?
1. Upgrade ESA AnomalyMatch to version 1.3.1 (fix available in PR #9 on GitHub). 2. Until patched, replace any torch.load() calls in custom code or forks with torch.load(path, weights_only=True) to enforce safe deserialization. 3. Restrict write access to session directories to trusted, minimal process accounts using filesystem ACLs. 4. Audit existing checkpoint files with picklescan or fickling to detect embedded malicious payloads before they are loaded. 5. Implement integrity verification — hash checks or cryptographic signing — for all model checkpoint files before loading. 6. Monitor for unexpected child process spawning from ML worker processes as a behavioral detection signal.
What systems are affected by CVE-2026-38950?
This vulnerability affects the following AI/ML architecture patterns: training pipelines, model serving, anomaly detection systems, MLOps pipelines.
What is the CVSS score for CVE-2026-38950?
CVE-2026-38950 has a CVSS v3.1 base score of 7.8 (HIGH). The EPSS exploitation probability is 0.05%.
AI Security Impact
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0010.003 Model AML.T0011.000 Unsafe AI Artifacts AML.T0018.002 Embed Malware Compliance Controls Affected
Technical Details
Original Advisory
An issue in ESA AnomalyMatch before 1.3.1 allow attackers to execute arbitrary code via crafted model checkpoint files. The affected components load model files from session directories using torch.load() with unrestricted deserialization.
Exploitation Scenario
An attacker who gains write access to the AnomalyMatch session directory — through a misconfigured NFS share, a compromised upstream data pipeline component, or an SSRF vulnerability in a web-facing data ingestion service — plants a crafted .pt file embedding a malicious Python pickle payload (trivially generated with existing open-source tools). When AnomalyMatch resumes or initializes a session and calls torch.load() on the checkpoint, the pickle payload executes in the process context, spawning a reverse shell or installing a persistent backdoor with the ML worker's OS privileges, potentially enabling lateral movement into broader data infrastructure or model registries.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H References
Timeline
Related Vulnerabilities
CVE-2025-59528 10.0 Flowise: Unauthenticated RCE via MCP config injection
Same attack type: Supply Chain CVE-2024-2912 10.0 BentoML: RCE via insecure deserialization (CVSS 10)
Same attack type: Supply Chain CVE-2023-3765 10.0 MLflow: path traversal allows arbitrary file read
Same attack type: Supply Chain CVE-2025-5120 10.0 smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Supply Chain CVE-2026-21858 10.0 n8n: Input Validation flaw enables exploitation
Same attack type: Code Execution