Description
Vocos instantiates a class named by a configuration file without restricting which class may be named. instantiate_class in vocos/pretrained.py takes the class_path value from the configuration, splits it into a module and an attribute, imports the module with __import__, resolves the attribute with getattr, and calls the result as args_class(*args, **kwargs) where kwargs is the config's own init_args mapping. No allowlist constrains the dotted path, so a configuration may name any importable callable and supply the arguments it is called with. Vocos.from_hparams reaches this for each of the feature_extractor, backbone and head entries, and Vocos.from_pretrained reaches it with a remote file: it downloads config.yaml from a caller-named Hugging Face repository and passes it straight to from_hparams. Loading a model from a repository the user does not control therefore executes code of the repository owner's choosing in the loading process. The neighbouring torch.load of the downloaded weights is a separate matter and is constrained on PyTorch releases that default weights_only to true, which leaves this path as the reachable one.
Published: 2026-08-25
Score: 8.6 High
EPSS: < 1% Very Low
KEV: No
Impact: Arbitrary Code Execution
Action: Immediate Patch
AI Analysis

Impact

A vulnerability in Vocos 0.1.0 allows an attacker to execute arbitrary code during model loading because the library accepts a class_path string from a configuration file and performs an unrestricted import of the specified class (CWE‑470). The instantiate_class function splits the path into a module and an attribute, imports the module with __import__, resolves the attribute with getattr, and calls it with configuration arguments, all without limiting which classes may be referenced. This lack of validation permits the execution of any Python object available to the runtime, effectively turning the model configuration file into an attacker‑controlled code injection vector.

Affected Systems

Gemelo‑AI Vocos up through version 0.1.0 is affected. Any installation that imports the package and invokes Vocos.from_hparams or Vocos.from_pretrained to load a model from a repository that the user does not control is vulnerable. The issue resides in the model configuration handling of these functions and was present in releases before the 0.1.1 update, if available.

Risk and Exploitability

The CVSS score of 8.6 indicates a high severity of the flaw. Because no EPSS score is available, the exploitation probability cannot be quantified, but the vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is a compromised or malicious model repository that supplies a crafted config.yaml containing a harmful class_path entry; loading such a model with Vocos.from_pretrained triggers the execution of the attacker‑supplied code during the loading process. If the attacker can supply the repository name, they control the configuration file and thereby the code executed on the host. No publicly reported exploit exists yet, but the presence of unrestricted imports means that any arbitrary code can be executed, presenting a significant risk if a user loads models from unknown sources.

Generated by OpenCVE AI on August 25, 2026 at 17:30 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Vocos to a version that restricts or validates the class_path value, eliminating the unrestricted import path.
  • Avoid downloading or executing models from untrusted Hugging Face repositories; only use vetted sources and, if possible, manually inspect config.yaml before calling Vocos.from_pretrained.
  • If an upgrade is not feasible, patch or monkey‑patch the instantiate_class function to enforce a whitelist of safe classes, or sand‑box the import and call to reject unexpected modules.

Generated by OpenCVE AI on August 25, 2026 at 17:30 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 28 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Gemelo-ai
Gemelo-ai vocos
Vendors & Products Gemelo-ai
Gemelo-ai vocos

Thu, 27 Aug 2026 06:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 25 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Description Vocos instantiates a class named by a configuration file without restricting which class may be named. instantiate_class in vocos/pretrained.py takes the class_path value from the configuration, splits it into a module and an attribute, imports the module with __import__, resolves the attribute with getattr, and calls the result as args_class(*args, **kwargs) where kwargs is the config's own init_args mapping. No allowlist constrains the dotted path, so a configuration may name any importable callable and supply the arguments it is called with. Vocos.from_hparams reaches this for each of the feature_extractor, backbone and head entries, and Vocos.from_pretrained reaches it with a remote file: it downloads config.yaml from a caller-named Hugging Face repository and passes it straight to from_hparams. Loading a model from a repository the user does not control therefore executes code of the repository owner's choosing in the loading process. The neighbouring torch.load of the downloaded weights is a separate matter and is constrained on PyTorch releases that default weights_only to true, which leaves this path as the reachable one.
Title Vocos through 0.1.0 Arbitrary Code Execution via Unrestricted class_path in Model Configuration
Weaknesses CWE-470
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.6, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-26T16:10:54.750Z

Reserved: 2026-08-25T14:32:37.762Z

Link: CVE-2026-79784

cve-icon Vulnrichment

Updated: 2026-08-26T16:08:12.256Z

cve-icon NVD

Status : Received

Published: 2026-08-25T16:17:30.547

Modified: 2026-08-26T17:17:24.903

Link: CVE-2026-79784

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T20:37:01Z

Weaknesses
  • CWE-470

    Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection')