CVE-2026-112145
7.3HighPublished 19 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
- Impact
- Limited impact
- Weakness
- CWE-470
Impact
Remote, unauthenticated attackers can execute arbitrary code or load malicious classes by passing a manipulated model parameter to the diarization endpoint. Exploit code is already public.
Root cause
The PyannoteDiarizationModelManager._load_fn function blindly passes user-controlled model names into a dynamic class or code loader without validation.
Affected systems
speaches-ai speaches up to 0.9.0-rc.3
CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
Fix & remediation
No fixed version is released yet. Restrict network access to the speaches service or disable the Pyannote Diarization feature until a patch is available.
$ pip list | grep speachesAI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD 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.