Description
A security vulnerability has been detected in speaches-ai speaches up to 0.9.0-rc.3. This vulnerability affects the function PyannoteDiarizationModelManager._load_fn of the file src/speaches/executors/pyannote_diarization.py of the component Pyannote Diarization Model Loading. The manipulation of the argument model leads to use of externally-controlled input to select classes or code. It is possible to initiate the attack remotely. The exploit has been disclosed publicly and may be used. The feature was introduced in PR #628 (feat/switch to pyannote audio), merged as commit 870e1e16a73452496e99d49f759eabd692a8e0e0. The project was informed of the problem early through an issue report but has not responded yet.
Published: 2026-10-19
Score: 6.9 Medium
EPSS: n/a
KEV: No
Impact: Remote code execution
Action: Immediate Patch
AI Analysis

Impact

The vulnerability arises from the PyannoteDiarizationModelManager._load_fn function in speaches, which accepts an external model argument that is used to instantiate classes or execute code. This use of untrusted data aligns with CWE-470 and allows an attacker to supply a value that causes the loader to create a malicious class or execute arbitrary code. The flaw can lead directly to remote code execution, compromising confidentiality, integrity, and availability of the affected system.

Affected Systems

The issue affects the speaches-ai speaches Python library, version 0.9.0‑rc.3 and earlier. The vulnerable component resides in src/speaches/executors/pyannote_diarization.py. Any environment that imports and uses the Pyannote Diarization model loading feature is at risk. The CPE indicates the product is speaches‑ai speaches. No later versions are documented in the release notes.

Risk and Exploitability

The CVSS base score is 6.9, a medium severity level. The EPSS score is absent, but a public proof‑of‑concept has been released, demonstrating that the flaw is actively exploitable over the network. The flaw is not yet listed in the CISA KEV catalog. An attacker can trigger the vulnerability remotely by sending a crafted model name or identifier to the _load_fn. Because the library has not yet released a fix or responded to issue reports, the window of vulnerability remains open, making the risk substantial for deployments that rely on that feature.

Generated by OpenCVE AI on October 19, 2026 at 15:27 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade speaches to a later release that fixes model input validation (check the repository for commits that sanitize the model argument).
  • If an upgrade is not available, limit the use of Pyannote Diarization model loading to trusted environments and hard‑code the list of allowable model names, rejecting all others.
  • Disable or remove the vulnerable model loading functionality until a patch is released, preventing remote exploitation.
  • Monitor the project's issue tracker and security advisories for a public fix, and apply it immediately when it becomes available.

Generated by OpenCVE AI on October 19, 2026 at 15:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 19 Oct 2026 14:00:00 +0000

Type Values Removed Values Added
Description A security vulnerability has been detected in speaches-ai speaches up to 0.9.0-rc.3. This vulnerability affects the function PyannoteDiarizationModelManager._load_fn of the file src/speaches/executors/pyannote_diarization.py of the component Pyannote Diarization Model Loading. The manipulation of the argument model leads to use of externally-controlled input to select classes or code. It is possible to initiate the attack remotely. The exploit has been disclosed publicly and may be used. The feature was introduced in PR #628 (feat/switch to pyannote audio), merged as commit 870e1e16a73452496e99d49f759eabd692a8e0e0. The project was informed of the problem early through an issue report but has not responded yet.
Title speaches-ai speaches Pyannote Diarization Model Loading pyannote_diarization.py PyannoteDiarizationModelManager._load_fn externally-controlled input to select classes or code
First Time appeared Speaches-ai
Speaches-ai speaches
Weaknesses CWE-470
CPEs cpe:2.3:a:speaches-ai:speaches:*:*:*:*:*:*:*:*
Vendors & Products Speaches-ai
Speaches-ai speaches
References
Metrics cvssV2_0

{'score': 7.5, 'vector': 'AV:N/AC:L/Au:N/C:P/I:P/A:P/E:POC/RL:ND/RC:C'}

cvssV3_0

{'score': 7.3, 'vector': 'CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P/RL:X/RC:C'}

cvssV3_1

{'score': 7.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P/RL:X/RC:C'}

cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P'}


Subscriptions

Speaches-ai Speaches
cve-icon MITRE

Status: PUBLISHED

Assigner: VulDB

Published:

Updated: 2026-10-19T13:45:17.561Z

Reserved: 2026-10-19T05:26:01.076Z

Link: CVE-2026-112145

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-10-19T14:17:02.140

Modified: 2026-10-19T15:16:45.150

Link: CVE-2026-112145

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-19T19:15:04Z

Weaknesses
  • CWE-470

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