---
id: "CVE-2026-121936"
kind: "vulnerability"
aliases: ["CVE-2026-121936"]
title: "easyVoice: unauthenticated request forgery reaches internal services via TTS endpoint"
severity: "medium"
cvss: 6.9
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["easyvoice", "node", "package", "self-hosted"]
not_affected_if: ["default-config", "no-network-endpoint"]
published_at: "2026-11-04T13:17:27+00:00"
first_seen_at: "2026-11-04T13:27:01+00:00"
updated_at: "2026-11-04T13:28:04+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-121936", "first_seen_at": "2026-11-04T13:27:01+00:00"}]
---

# easyVoice: unauthenticated request forgery reaches internal services via TTS endpoint

easyVoice before 0.0.23 lets an unauthenticated caller supply an openaiBaseUrl when useLLM is enabled, making the server send POST requests to attacker-chosen addresses. The reflected error text in the x-generate-tts-warning header lets an attacker probe loopback and internal hosts and ports.

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

## How to check

- Check the installed easyVoice version with `npm ls easyvoice` or the package.json dependency.
- Look for `useLLM` enabled and an `openaiBaseUrl` accepted from request input on the /api/v1/tts endpoints.

## Fix

- easyVoice: move to `0.0.23` or later.

## Timeline

- 2026-11-04T13:27:01+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-121936

## Documents

- [advisory] Third-party advisory: www.vulncheck.com https://www.vulncheck.com/advisories/easyvoice-before-0.0.23-ssrf-via-openaibaseurl-in-tts-api
- [fix] Patch: github.com https://github.com/cosin2077/easyVoice/commit/82fcb5b2f324c84b3f1808b29c6f44df16ccd42e
- [fix] Release notes: github.com https://github.com/cosin2077/easyVoice/releases/tag/v0.0.23

## From the sources

easyVoice before 0.0.23 contains a server-side request forgery vulnerability that allows unauthenticated attackers to make the server send POST requests by supplying openaiBaseUrl with useLLM enabled. Attackers can target loopback and internal services through /api/v1/tts endpoints, using reflected error messages in the x-generate-tts-warning header to probe internal hosts and ports.

---

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