CVE-2026-73325: OneCompression: RCE via malicious .pt checkpoint load
HIGHFujitsu Research's OneCompression library (onecomp on PyPI) loads quantized model checkpoints by calling torch.load() with weights_only=False, which means any .pt file placed in a model directory the application reads from can smuggle a pickle payload that executes arbitrary Python and system commands the moment it's deserialized. This isn't a network-exploitable bug — it requires local access and a user or automated pipeline to trigger the load — but the barrier to weaponize it is low (CVSS 7.8, AC:L, PR:N) and pickle-based RCE in ML checkpoint loaders is a well-understood attack class with public tooling. There's no evidence of active exploitation (not in CISA KEV, CISA SSVC rates it TRACK, no public exploit or Nuclei template), and EPSS puts real-world exploitation probability at just 0.26% despite ranking in the 82nd percentile among all scored CVEs, so this is a hygiene issue rather than a fire drill. Upgrade to onecomp 1.2.1 or later, and in the meantime treat any model directory your pipeline points OneCompression at as untrusted input — validate provenance, scan checkpoints with a tool like picklescan or fickling before load, and never let it read from user-writable or shared paths.
What is the risk?
Moderate-to-high technical severity (CVSS 7.8, full C/I/A impact) offset by local attack vector and required user interaction, which caps real-world exploitation likelihood. EPSS (0.26%) and the absence of KEV listing, public exploit code, or scanner coverage indicate this is not being actively targeted. The realistic risk driver is insider/supply-chain exposure: any workflow that lets an untrusted party influence which model directory OneCompression loads from (shared model repos, CI artifact stores, multi-tenant ML platforms) converts this into a practical code-execution path.
How does the attack unfold?
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade to onecomp 1.2.1+, which should address the weights_only=False default (verify in release notes/changelog). 2) Until patched, do not point QuantizedModelLoader at directories writable by untrusted users, external contributors, or third-party model sources. 3) Scan any third-party or externally-sourced .pt checkpoints with picklescan or fickling before they reach the loader. 4) Where feasible, wrap model-loading steps in a sandboxed/least-privilege process so a pickle RCE can't reach broader credentials or infrastructure. 5) Detection: monitor for unexpected subprocess spawns or outbound connections originating from ML pipeline/model-loading processes, which is the tell for a pickle __reduce__ payload firing.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-73325?
Fujitsu Research's OneCompression library (onecomp on PyPI) loads quantized model checkpoints by calling torch.load() with weights_only=False, which means any .pt file placed in a model directory the application reads from can smuggle a pickle payload that executes arbitrary Python and system commands the moment it's deserialized. This isn't a network-exploitable bug — it requires local access and a user or automated pipeline to trigger the load — but the barrier to weaponize it is low (CVSS 7.8, AC:L, PR:N) and pickle-based RCE in ML checkpoint loaders is a well-understood attack class with public tooling. There's no evidence of active exploitation (not in CISA KEV, CISA SSVC rates it TRACK, no public exploit or Nuclei template), and EPSS puts real-world exploitation probability at just 0.26% despite ranking in the 82nd percentile among all scored CVEs, so this is a hygiene issue rather than a fire drill. Upgrade to onecomp 1.2.1 or later, and in the meantime treat any model directory your pipeline points OneCompression at as untrusted input — validate provenance, scan checkpoints with a tool like picklescan or fickling before load, and never let it read from user-writable or shared paths.
Is CVE-2026-73325 actively exploited?
No confirmed active exploitation of CVE-2026-73325 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-73325?
1) Upgrade to onecomp 1.2.1+, which should address the weights_only=False default (verify in release notes/changelog). 2) Until patched, do not point QuantizedModelLoader at directories writable by untrusted users, external contributors, or third-party model sources. 3) Scan any third-party or externally-sourced .pt checkpoints with picklescan or fickling before they reach the loader. 4) Where feasible, wrap model-loading steps in a sandboxed/least-privilege process so a pickle RCE can't reach broader credentials or infrastructure. 5) Detection: monitor for unexpected subprocess spawns or outbound connections originating from ML pipeline/model-loading processes, which is the tell for a pickle __reduce__ payload firing.
What systems are affected by CVE-2026-73325?
This vulnerability affects the following AI/ML architecture patterns: model serving, training pipelines, model registries / artifact stores, CI/CD for ML pipelines.
What is the CVSS score for CVE-2026-73325?
CVE-2026-73325 has a CVSS v3.1 base score of 7.8 (HIGH). The EPSS exploitation probability is 0.40%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0010.003ModelAML.T0011.000Unsafe AI ArtifactsAML.T0018.002Embed MalwareAML.T0050Command and Scripting InterpreterCompliance Controls Affected
What are the technical details?
Original Advisory
Fujitsu Research's OneCompression library before 1.2.1 contains an unsafe deserialization vulnerability that allows attackers to execute arbitrary code by supplying a crafted model.pt checkpoint file, as QuantizedModelLoader.load_quantized_model_pt() unconditionally calls torch.load with weights_only=False, invoking Python's pickle machinery during deserialization. Attackers can embed malicious __reduce__ methods in a crafted model checkpoint to execute arbitrary Python code, including system commands, when the library loads the file from a caller-selected model directory.
Exploitation Scenario
An attacker contributes a poisoned quantized checkpoint to a public model hub, internal shared model store, or a CI artifact cache that a victim's ML pipeline treats as trusted. The checkpoint's pickle stream embeds a __reduce__ method wired to a system command. When the victim's pipeline calls QuantizedModelLoader.load_quantized_model_pt() against that directory — as part of routine model deployment, benchmarking, or a CI job — torch.load() deserializes the file, pickle invokes the __reduce__ payload, and the attacker gains code execution on the host running the pipeline, with the ability to exfiltrate credentials, pivot to other systems, or tamper with the broader ML environment.
Weaknesses (CWE)
CWE-502 — Deserialization of Untrusted Data: The product deserializes untrusted data without sufficiently ensuring that the resulting data will be valid.
- [Architecture and Design, Implementation] If available, use the signing/sealing features of the programming language to assure that deserialized data has not been tainted. For example, a hash-based message authentication code (HMAC) could be used to ensure that data has not been modified.
- [Implementation] When deserializing data, populate a new object rather than just deserializing. The result is that the data flows through safe input validation and that the functions are safe.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HReferences
Timeline
Related Vulnerabilities
CVE-2025-5952810.0Flowise: Unauthenticated RCE via MCP config injection
Same attack type: Supply ChainCVE-2024-291210.0BentoML: RCE via insecure deserialization (CVSS 10)
Same attack type: Supply ChainCVE-2023-376510.0MLflow: path traversal allows arbitrary file read
Same attack type: Supply ChainCVE-2025-512010.0smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Supply ChainCVE-2026-2185810.0n8n: Input Validation flaw enables exploitation
Same attack type: Code Execution