Skip to main content

CosyVoice CVE-2026-31249

| EUVDEUVD-2026-29096 HIGH
Deserialization of Untrusted Data (CWE-502)
2026-05-11 mitre GHSA-jj3w-p9wg-m6hq
7.3
CVSS 3.1 · NVD
Share

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

Exploitation needs a victim to locally run the tool over an attacker-supplied file, so AV:L and UI:R; pickle deserialization yields full code execution, hence C/I/A:H.

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

4
Analysis Generated
Jul 24, 2026 - 00:02 vuln.today
CVSS changed
May 12, 2026 - 18: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 make_parquet_list.py data processing tool. The script loads PyTorch .pt files (utterance embeddings, speaker embeddings, speech tokens) 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 .pt files within a data directory. When a victim processes this directory using the tool, arbitrary code is executed on the victim's system.

AnalysisAI

Arbitrary code execution in CosyVoice (FunAudioLLM's multilingual text-to-speech toolkit) through commit 6e01309 allows an attacker to run code on a victim's machine via a malicious PyTorch .pt file. The vulnerability lives in the make_parquet_list.py data-preparation tool, which calls torch.load() without weights_only=True, so any .pt file it ingests can carry a malicious pickle payload that executes when the victim processes an attacker-supplied data directory. Reported by MITRE with a low EPSS (0.02%, 5th percentile) and no public exploit identified at time of analysis; this is a poisoned-input/supply-chain style flaw rather than a remotely reachable network service.

Technical ContextAI

CosyVoice is a PyTorch-based speech/TTS toolkit that stores utterance embeddings, speaker embeddings, and speech tokens as serialized .pt tensor files. The root cause is CWE-502 (Deserialization of Untrusted Data): PyTorch's torch.load() defaults to the Python pickle module, which reconstructs arbitrary objects and invokes their __reduce__ methods during unpickling, enabling code execution. Passing weights_only=True restricts loading to plain tensors/primitives and is the documented mitigation; make_parquet_list.py omits it, so it will faithfully execute any pickle opcodes embedded in the .pt files it reads. The affected component is a data-processing/training-prep utility, not the inference server, meaning exposure depends on someone running the tool over untrusted data.

RemediationAI

No vendor-released patched version is identified at time of analysis (affected versions are 'n/a' in EUVD/NVD and no fix commit is cited). The direct code-level fix is to change the torch.load() calls in make_parquet_list.py to pass weights_only=True so only tensors/primitives are deserialized; teams running from source can apply this one-line change themselves after checking that all loaded .pt files are plain tensors (weights_only can break loading of legitimately pickled non-tensor objects, so validate before rolling out). As a compensating control, only process .pt datasets from trusted, integrity-verified sources - never run make_parquet_list.py over downloaded or third-party data directories, and where feasible run the tool in a sandboxed/containerized, network-isolated account with no credentials so any executed payload is contained. Track the upstream repo (https://github.com/FunAudioLLM/CosyVoice) for an official fix and monitor the advisory at https://nvd.nist.gov/vuln/detail/CVE-2026-31249.

More in Python

View all
CVE-2025-24016 CRITICAL POC
9.9 Feb 10

Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t

CVE-2025-27520 CRITICAL POC
9.8 Apr 04

BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser

CVE-2025-2945 CRITICAL POC
9.9 Apr 03

pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi

CVE-2013-5093 MEDIUM POC
6.8 Sep 27

The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python

CVE-2025-32375 CRITICAL POC
9.8 Apr 09

BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2024-21644 HIGH POC
7.5 Jan 08

pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.

CVE-2026-33017 CRITICAL POC
9.3 Mar 17

Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301

CVE-2017-9462 HIGH POC
8.8 Jun 06

In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse

CVE-2026-49869 CRITICAL POC
10.0 Jun 26

Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to

CVE-2026-39987 CRITICAL POC
9.3 Apr 08

Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/

CVE-2024-21645 MEDIUM POC
5.3 Jan 08

pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne

Share

CVE-2026-31249 vulnerability details – vuln.today

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