Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover exposed F5-TTS Gradio UI
-
DeliverySend finetune request with absolute project_name
-
ExploitTrigger os.path.join base-directory override
-
ExecutionServer creates attacker path and writes JSON
-
PersistOverwrite cron/SSH/site-packages file
-
ImpactAchieve code execution as server user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The F5-TTS finetune Gradio web UI (src/f5_tts/train/finetune_gradio.py, the create_data_project handler and related project-name endpoints) must be running and reachable by the attacker over the network - no authentication, user interaction, or non-default configuration toggle is required once the UI is exposed. The practical limiter is exposure: F5-TTS is typically launched ad hoc by researchers, so internet reachability requires either Gradio's share=True tunnel, a 0.0.0.0 bind, or deployment behind a permissive ingress. Impact is bounded by the filesystem permissions of the server process - if F5-TTS runs as an unprivileged user inside a container, writes are confined to that user's writable paths; if it runs as root or with broad host mounts (common on bare-metal GPU rigs), arbitrary system files become writable. |
| Impact | CVSS 4.0 vector AV:N/AC:L/AT:N/PR:N/UI:N with VI:H captures the core risk accurately: network-reachable, no authentication, no user interaction, high integrity impact, low availability impact, and no confidentiality impact (the bug writes files, it does not read them). Publicly available exploit code raises practical risk, though the vulnerability is not listed in CISA KEV and no EPSS score was provided in the input. The realistic threat is contingent on a critical deployment assumption - the Gradio finetune UI must be network-exposed; many F5-TTS installs run locally on researcher workstations, which would substantially limit blast radius. Where the UI is exposed (cloud notebooks, shared GPU servers, container deployments behind permissive ingress), this is a high-priority issue because write-anywhere primitives on ML training hosts routinely escalate to code execution via overwriting startup scripts, cron files, SSH authorized_keys, or Python site-packages. |
| Exploit ScenarioDerived | An attacker locates an internet-exposed F5-TTS finetune Gradio interface (common on shared GPU/cloud instances or via launch(share=True) tunnels), then invokes the project-creation handler with project_name set to an absolute path such as /root/.ssh or /etc/cron.d/pwn. The server's os.makedirs() and subsequent JSON writes create the attacker-controlled directory and file at that location, and because POC code is publicly available on the GitHub issue, this can be reproduced with a single HTTP request and pivoted to code execution by dropping a cron entry or overwriting a Python module loaded by the training process. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 01, 2026
Arbitrary file write in F5-TTS through 1.1.20 allows unauthenticated remote attackers to create directories and write attacker-controlled JSON anywhere the server process has write access by abusing unsanitized project_name parameters in the finetune Gradio interface. The flaw stems from passing user input directly to os.path.join() - supplying an absolute path bypasses the intended base directory entirely. Publicly available exploit code exists, and an upstream patch has been merged via PR #1294.
RemediationAI
Upstream fix available (PR https://github.com/SWivid/F5-TTS/pull/1294 and commit https://github.com/SWivid/F5-TTS/commit/2f53ded68e5f69e248ceb200a51ef4d1dc647936); a released patched version was not independently confirmed in the input data, so users should pin to a build that includes that commit or apply the patch manually until SWivid tags a release above 1.1.20. The fix introduces _safe_project_path(), which rejects absolute paths, null bytes, and '.'/'..' components and verifies via os.path.realpath that the resolved path remains under the intended base directory. As compensating controls until the patch is deployed, bind the Gradio app to 127.0.0.1 only (Gradio defaults to local but launch(share=True) and many container configs expose 0.0.0.0), place the finetune UI behind authenticated reverse-proxy access (HTTP basic auth or SSO), and run the server process as an unprivileged account inside a container with a read-only root filesystem so that arbitrary writes cannot reach /etc, ~/.ssh, or Python site-packages - be aware this last control will break legitimate writes outside the project directory and may require explicit writable volume mounts.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
F5-TTS is an open-source flow-matching text-to-speech model (vendor: SWivid) that ships a Gradio-based web UI for fine-tuning (src/f5_tts/train/finetune_gradio.py). The vulnerability is a textbook CWE-22 Path Traversal: Python's os.path.join(base, user_input) returns user_input unchanged when user_input is absolute (e.g. '/tmp/EVIL'), silently discarding the base directory. Multiple handlers - save_settings, start_training, get_list_projects, vocab_extend, vocab_check, get_random_sample_prepare, calculate_train - all consumed project_name/dataset_name from Gradio inputs without normalization or containment checks, causing every downstream os.makedirs() and file write to follow the attacker's path. The CPE confirms affected scope is swivid:f5-tts across all versions up to 1.1.20.
Know when F5 Tts gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
Primary rating from Vendor (VulnCheck) · only source for this CVE.
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
F5-TTS through version 1.1.20 contains a path traversal vulnerability in the finetune Gradio handlers that allows unauthenticated attackers to write arbitrary files by passing unsanitized user-supplied project names directly to os.path.join() without validating the resulting path stays within the intended base directory. Attackers can supply absolute path arguments such as /tmp/EVIL to override the base directory entirely and create arbitrary directories with attacker-controlled JSON content at any filesystem path writable by the server process.
Executive ViewAI
F5-TTS versions through 1.1.20 contain an unauthenticated arbitrary file write vulnerability (CVSS 8.8) with publicly available exploit code. Remote attackers can create directories and write files anywhere the server process has write access, risking data corruption, service disruption, or privilege escalation. All organizations using F5-TTS must urgently inventory deployments and plan immediate patching.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
EUVD-2026-33744
GHSA-93wx-x4m2-5c8f
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB