Skip to main content

CosyVoice CVE-2026-31250

| EUVDEUVD-2026-29097 HIGH
Deserialization of Untrusted Data (CWE-502)
2026-05-11 mitre GHSA-jf74-gj4g-6qpg
7.3
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious epoch_*.pt with pickle payload
  2. Delivery
    Deliver poisoned checkpoint into victim's model directory
  3. Exploit
    Victim runs average_model.py
  4. Execution
    torch.load() deserializes untrusted pickle
  5. Impact
    Arbitrary code executes as victim user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V1 - Encoding and Sanitization Safe deserialization, type allowlists
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that a victim actually run the average_model.py model-averaging tool and point it at a directory containing an attacker-supplied malicious epoch_*.pt PyTorch checkpoint; the vulnerable code path is the torch.load() call made without weights_only=True. Limiting factors: the attacker cannot trigger this remotely on their own - it depends on victim user interaction (running the tool) and on the attacker first getting a crafted checkpoint into a directory the victim processes (via a shared/downloaded model, compromised repo, or social engineering). It is therefore constrained to environments that perform model averaging on externally sourced checkpoints; installations that only average locally produced, trusted checkpoints are not realistically exposed. Despite the published CVSS marking UI:N/AV:N, the description's 'when a victim uses the tool' wording confirms required user interaction and file/local delivery - verify against the vendor writeup.

Impact

Signals conflict and should be weighed carefully. The published CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N, C:L/I:L/A:L = 7.3) both understates and overstates the flaw: it understates impact because successful pickle deserialization yields full arbitrary code execution (should be C:H/I:H/A:H, not Low), yet it overstates reachability by marking UI:N and AV:N when the description clearly requires a victim to run the averaging tool against attacker-supplied files - that is user interaction and a local/file-delivery vector, not unauthenticated remote exploitation. EPSS is negligible (0.02%, 5th percentile), SSVC exploitation status is 'none' (not in CISA KEV, no known active exploitation), and no POC is referenced, so this is not an at-scale internet-facing threat. However SSVC flags it automatable with partial technical impact, and the exploit primitive itself is reliable once a victim is induced to process a poisoned checkpoint. Net: a genuine RCE worth patching for anyone running CosyVoice training/averaging pipelines, but low urgency relative to a network-exploitable KEV entry - it is a supply-chain/untrusted-model-file risk, not a mass-exploitation one.

Exploit ScenarioDerived

An attacker publishes a poisoned model checkpoint (e.g., a 'pretrained' or community-shared epoch_10.pt) on a model hub or sends it as a collaboration artifact. A CosyVoice user drops it into a directory and runs average_model.py to blend it with other epochs; torch.load() unpickles the file and the embedded payload executes with the victim's privileges, giving the attacker code execution and access to that user's data and credentials. No public POC is referenced, but the technique is well-known and reliable given AC:L.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 24, 2026

Arbitrary code execution in CosyVoice (FunAudioLLM's open-source multilingual text-to-speech toolkit) arises because its average_model.py utility calls PyTorch's torch.load() on epoch_*.pt checkpoint files without weights_only=True, allowing pickle-based deserialization of attacker-controlled objects. Any user who runs the model-averaging tool against a directory containing a malicious checkpoint executes attacker code on their machine. There is no public exploit identified at time of analysis and EPSS is very low (0.02%), but the CWE-502 pattern is trivially weaponizable and SSVC marks it automatable.

RemediationAI

No vendor-released patch version has been identified at time of analysis; the corrective code change is to modify average_model.py to call torch.load(..., weights_only=True) (and more broadly to load checkpoints in a restricted-unpickling mode), so track the upstream repository at https://github.com/FunAudioLLM/CosyVoice for a fixed commit or release. Until a fixed build is confirmed, only run the model-averaging tool on checkpoint directories you produced or fully trust, and never on epoch_*.pt files downloaded from third parties, shared model hubs, or untrusted collaborators; treating downloaded model weights as untrusted code is the key compensating control. Optionally run the averaging step inside a sandboxed, network-isolated container or unprivileged user account so that a malicious pickle payload cannot reach sensitive credentials or persist - the trade-off is added pipeline friction and setup overhead. Verify checkpoint provenance with hashes/signatures where possible; the side effect is operational overhead maintaining a trusted-artifact inventory.

Affected VersionsENISA

n/a n/a

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected component is the model-averaging helper in CosyVoice, a neural TTS/voice-cloning framework built on PyTorch. PyTorch checkpoints are Python pickle streams; torch.load() by default reconstructs arbitrary objects and will invoke __reduce__ handlers embedded in a crafted pickle, which is the classic CWE-502 (Deserialization of Untrusted Data) root cause. The introduction of the weights_only=True flag in modern PyTorch restricts loading to tensor data and known safe globals; because average_model.py omits this flag, a malicious epoch_*.pt file can carry an executable payload that runs during load. CPE data is unhelpful here (listed as cpe:2.3:a:n/a:n/a:*), so affected identification rests on the source repository (github.com/FunAudioLLM/CosyVoice) and the commit boundary named in the description.

Know when Checkpoint gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 7.3 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
vuln.today AI 7.8 HIGH

Attacker supplies a malicious file processed locally (AV:L) that the victim must run the tool on (UI:R); pickle deserialization yields full code execution, so C/I/A:H, unlike the published Low impacts.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low

Lifecycle Timeline

3
CVSS changed
May 12, 2026 - 20:22 NVD
7.3 (HIGH)
CVE Published
May 11, 2026 - 00:00 nvd
HIGH 7.3
CVE Published
May 11, 2026 - 00:00 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

CosyVoice thru commit 6e01309e01bc93bbeb83bdd996b1182a81aaf11e (2025-30-21) contains an insecure deserialization vulnerability (CWE-502) in its average_model.py model averaging tool. The script loads PyTorch checkpoint files (epoch_*.pt) for model averaging using torch.load() without enabling the weights_only=True security parameter. This allows the deserialization of arbitrary Python objects via the pickle module. An attacker can exploit this by providing malicious checkpoint files within a directory. When a victim uses the tool to average models from this directory, arbitrary code is executed on the victim's system.

Executive ViewAI

Why It Matters

CosyVoice (FunAudioLLM text-to-speech toolkit) contains a high-severity arbitrary code execution vulnerability (CVE-2026-31250) triggered when users run the model-averaging utility against directories containing malicious checkpoint files. Organizations using CosyVoice in production ML pipelines or data processing workflows face direct code execution risk within their infrastructure if checkpoint sources are not strictly controlled.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict checkpoint file sources to only internal or vendor-verified repositories; disable all public or untrusted sources; (2) Implement cryptographic integrity verification (HMAC or digital signatures) before any checkpoint load; (3) Disable the model-averaging utility entirely if not actively required; (4) Run model-averaging operations within isolated containers or VMs with no network access and minimal host system connectivity; (5) Enforce granular file system permissions limiting write access to checkpoint directories; (6) Enable audit logging on all modifications to epoch_*.pt files.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Prevalence
Low
open-source AI/TTS research toolkit, niche ML deployment footprint
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Insecure deserialization occurs when an application converts serialized data (a stream of bytes representing an object's state) back into a living object without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2014-6271 CRITICAL POC
9.8 Sep 24

GNU Bash through 4.3 processes trailing strings after function definitions in the values of environment variables, which

CVE-2024-24919 HIGH POC
8.6 May 28

Potentially allowing an attacker to read certain information on Check Point Security Gateways once connected to the inte

CVE-2014-7169 CRITICAL POC
9.8 Sep 25

GNU Bash through 4.3 bash43-025 processes trailing strings after certain malformed function definitions in the values of

CVE-2017-1000083 HIGH POC
7.8 Sep 05

backend/comics/comics-document.c (aka the comic book backend) in GNOME Evince before 3.24.1 allows remote attackers to e

CVE-2026-85102 CRITICAL POC
9.8 Sep 09

Remote code execution in Check Point Quantum Security Gateway arises from improper certificate trust validation during V

CVE-2026-16232 CRITICAL POC
9.3 Jul 22

Authentication bypass in the Check Point SmartConsole login process lets an unauthenticated remote attacker mint a valid

CVE-2026-50751 CRITICAL POC
9.3 Jun 08

Authentication bypass in Check Point Quantum Security Gateway and Spark Firewalls allows unauthenticated remote attacker

CVE-2026-93616 CRITICAL POC
9.8 Sep 22

Unauthenticated attackers who can reach the file-upload interface of Check Point Management Server can combine directory

CVE-2021-3449 MEDIUM
5.9 Mar 25

An OpenSSL TLS server may crash if sent a maliciously crafted renegotiation ClientHello message from a client. Rated med

CVE-2026-85103 CRITICAL POC
9.8 Sep 09

Remote code execution in Check Point Quantum Security Gateway and Quantum Security Management stems from a heap-based bu

CVE-2026-91843 CRITICAL POC
9.8 Sep 16

Unauthenticated remote code execution affects Check Point Quantum Security Management, where a stack-based buffer overfl

CVE-2024-3568 CRITICAL POC
9.6 Apr 10

The huggingface/transformers library is vulnerable to arbitrary code execution through deserialization of untrusted data

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy