---
id: "CVE-2026-112145"
kind: "vulnerability"
aliases: ["CVE-2026-112145"]
title: "speaches: model argument lets remote users select code to load"
severity: "high"
cvss: 7.5
epss: null
exploited: false
status: "open"
category: "ai-tooling"
products: []
ecosystems: []
tags: ["ai-speech", "ai-tooling", "pyannote", "python", "self-hosted", "speaches"]
not_affected_if: ["default-config"]
published_at: "2026-10-19T14:17:02+00:00"
first_seen_at: "2026-10-23T21:57:18+00:00"
updated_at: "2026-10-25T03:23:05+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-112145", "first_seen_at": "2026-10-23T21:57:18+00:00"}]
---

# speaches: model argument lets remote users select code to load

Speaches, an AI speech server, passes an attacker-controlled model name into the pyannote diarization model loader, which selects classes or code to run based on that input. A remote attacker who can reach the API may be able to execute code on the server.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed Speaches version; the sources say versions up to `0.9.0-rc.3` are affected, so confirm whether the deployed build is newer.
- Confirm whether the diarization endpoint is reachable from untrusted networks.

## Fix

- The sources do not name a fixed version; check the upstream speaches-ai/speaches repository for a patched release.
- Until patched, restrict network access to the Speaches API and do not expose it publicly.

## Timeline

- 2026-10-23T21:57:18+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-112145

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
