Description
The _load_model() function in the neural_magic_training.py script of the optimate project in commit a6d302f912b481c94370811af6b11402f51d377f (2024-07-21) is vulnerable to insecure deserialization (CWE-502). When loading a model state dictionary from a state_dict.pt file via torch.load(), the function does not enable the weights_only=True security parameter. This allows the deserialization of arbitrary Python objects through the Pickle module. A remote attacker can exploit this by providing a maliciously crafted state_dict.pt file within a directory specified via the --model argument, leading to arbitrary code execution during the deserialization process on the victim's system.
Published: 2026-05-12
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The load_model function in the neural_magic_training.py script of the optimate project contains an insecure deserialization flaw (CWE-502). When loading a model’s state dictionary from a state_dict.pt file via torch.load(), the function does not enable the weights_only=True security parameter, allowing the deserialization of arbitrary Python objects through the Pickle module. This flaw enables a malicious actor to craft a state_dict.pt file that executes arbitrary code during loading, compromising the integrity, confidentiality, and availability of the system that runs the script.

Affected Systems

The vulnerability affects the optimate project, specifically the neural_magic_training.py script in the commit a6d302f912b481c94370811af6b11402f51d377f (2024-07-21). Any deployment of optimate that loads model files via the --model argument and uses the default torch.load behavior is susceptible, regardless of the specific operating system or Python environment, because the insecure pickle deserialization is hardcoded into the script.

Risk and Exploitability

The flaw provides remote code execution with a likelihood of exploitation that cannot be precisely quantified due to the absence of EPSS data; however, the vulnerability is severe because it permits arbitrary code execution when an attacker supplies a malicious state_dict.pt file through the model path. The absence of a KEV listing means it has not yet been reported as a widely exploited vulnerability, but the inherent risk of remote code execution warrants immediate attention. The attack vector is inferred to be remote, as the attacker must provide the malicious file in the directory specified by the --model argument, which is then processed during normal script execution.

Generated by OpenCVE AI on May 12, 2026 at 19:01 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update to a version of optimate that enforces weights_only=True in torch.load or otherwise restricts pickle deserialization
  • Validate or digitally sign all state_dict.pt files before loading to ensure they contain only expected data
  • Restrict file system permissions so that only trusted users can place files in the --model directory and consider sandboxing the script execution environment
  • If an update is not yet available, manually modify the load_model function to include the unsafe=False parameter or switch to a safer deserialization method

Generated by OpenCVE AI on May 12, 2026 at 19:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 12 May 2026 19:30:00 +0000

Type Values Removed Values Added
Title Insecure Deserialization in optimate's Model Loading Enables Remote Code Execution
Weaknesses CWE-502

Tue, 12 May 2026 16:00:00 +0000

Type Values Removed Values Added
Description The _load_model() function in the neural_magic_training.py script of the optimate project in commit a6d302f912b481c94370811af6b11402f51d377f (2024-07-21) is vulnerable to insecure deserialization (CWE-502). When loading a model state dictionary from a state_dict.pt file via torch.load(), the function does not enable the weights_only=True security parameter. This allows the deserialization of arbitrary Python objects through the Pickle module. A remote attacker can exploit this by providing a maliciously crafted state_dict.pt file within a directory specified via the --model argument, leading to arbitrary code execution during the deserialization process on the victim's system.
References

Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: mitre

Published:

Updated: 2026-05-12T15:07:21.158Z

Reserved: 2026-03-09T00:00:00.000Z

Link: CVE-2026-31218

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-05-12T16:16:13.710

Modified: 2026-05-12T16:16:13.710

Link: CVE-2026-31218

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-12T19:15:22Z

Weaknesses