CVE-2026-8756: Bert-VITS2: path traversal exposes ML training filesystem
HIGHCVE-2026-8756 is an unauthenticated path traversal in the Gradio preprocessing interface of fishaudio Bert-VITS2, a widely-used open-source voice synthesis model toolkit. The `generate_config` function accepts user-controlled `data_dir` input without sanitization, allowing remote attackers to traverse outside the intended working directory and read or write arbitrary files on the host. While EPSS data is not yet available and the vulnerability is absent from CISA KEV, the CVSS 7.3 HIGH score reflects no authentication required, no user interaction, and trivial network-accessible exploitation — a public proof-of-concept exploit has already been disclosed on GitHub, meaning the window before widespread scanning begins is short. Teams running Bert-VITS2 training or preprocessing pipelines should immediately restrict the Gradio interface to localhost-only binding (`server_name='127.0.0.1'`) and audit whether any instance is currently exposed on internal or external networks.
What is the risk?
HIGH operational risk for ML engineering teams running Bert-VITS2 preprocessing pipelines. No authentication bypass needed — the Gradio interface accepts unauthenticated requests by default when server binding is not restricted. Combining network-accessible path traversal (CVSS AV:N/AC:L/PR:N/UI:N) with a live public PoC yields a near-certain exploitation scenario for any exposed instance. Training environments often store API keys, SSH keys, and cloud storage credentials in nearby configuration files, elevating the blast radius beyond the ML artifact scope. The absence of versioning in this project means no patched release exists; mitigations are configuration-only.
Attack Kill Chain
Severity & Risk
Attack Surface
What should I do?
6 steps-
Immediately bind the Gradio interface to localhost: add
server_name='127.0.0.1'to anygr.Blocks().launch()call inwebui_preprocess.py. -
Since the project has no versioning, pin to a commit after the vendor addresses this — track the repository for a fix commit post-disclosure.
-
Audit all running Bert-VITS2 instances using
ss -tlnp | grep 7860(default Gradio port) to identify exposed services. -
Apply network-level controls: block inbound access to Gradio default ports (7860-7870) at the firewall or security group level.
-
For detection, monitor file access logs for path traversal patterns (
../) in web server request logs or using auditd rules on sensitive directories. -
Rotate any credentials stored in files accessible from the Bert-VITS2 working directory.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-8756?
CVE-2026-8756 is an unauthenticated path traversal in the Gradio preprocessing interface of fishaudio Bert-VITS2, a widely-used open-source voice synthesis model toolkit. The `generate_config` function accepts user-controlled `data_dir` input without sanitization, allowing remote attackers to traverse outside the intended working directory and read or write arbitrary files on the host. While EPSS data is not yet available and the vulnerability is absent from CISA KEV, the CVSS 7.3 HIGH score reflects no authentication required, no user interaction, and trivial network-accessible exploitation — a public proof-of-concept exploit has already been disclosed on GitHub, meaning the window before widespread scanning begins is short. Teams running Bert-VITS2 training or preprocessing pipelines should immediately restrict the Gradio interface to localhost-only binding (`server_name='127.0.0.1'`) and audit whether any instance is currently exposed on internal or external networks.
Is CVE-2026-8756 actively exploited?
No confirmed active exploitation of CVE-2026-8756 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-8756?
1. Immediately bind the Gradio interface to localhost: add `server_name='127.0.0.1'` to any `gr.Blocks().launch()` call in `webui_preprocess.py`. 2. Since the project has no versioning, pin to a commit after the vendor addresses this — track the repository for a fix commit post-disclosure. 3. Audit all running Bert-VITS2 instances using `ss -tlnp | grep 7860` (default Gradio port) to identify exposed services. 4. Apply network-level controls: block inbound access to Gradio default ports (7860-7870) at the firewall or security group level. 5. For detection, monitor file access logs for path traversal patterns (`../`) in web server request logs or using auditd rules on sensitive directories. 6. Rotate any credentials stored in files accessible from the Bert-VITS2 working directory.
What systems are affected by CVE-2026-8756?
This vulnerability affects the following AI/ML architecture patterns: training pipelines, ml ui interfaces, model serving.
What is the CVSS score for CVE-2026-8756?
CVE-2026-8756 has a CVSS v3.1 base score of 7.3 (HIGH). The EPSS exploitation probability is 0.09%.
Technical Details
NVD Description
A vulnerability has been found in fishaudio Bert-VITS2 up to 8f7fbd8c4770965225d258db548da27dc8dd934c. The impacted element is the function generate_config of the file webui_preprocess.py of the component Gradio Interface. Such manipulation of the argument data_dir leads to path traversal. The attack can be launched remotely. The exploit has been disclosed to the public and may be used. This product does not use versioning. This is why information about affected and unaffected releases are unavailable. The vendor was contacted early about this disclosure but did not respond in any way.
Exploitation Scenario
An attacker scans for internet-exposed services on port 7860 (Gradio default) and identifies a Bert-VITS2 preprocessing instance with no authentication. Using the public GitHub PoC, they submit a crafted POST request to the `generate_config` Gradio endpoint with `data_dir` set to a path traversal sequence such as `../../../../../../home/user/.ssh/` or `../../opt/ml/.env`. The server processes the traversal without validation and returns file contents or writes a malicious config. The attacker exfiltrates Hugging Face API tokens, cloud storage credentials, or SSH private keys found in adjacent directories — enabling persistent access to model registries, training data buckets, or the underlying compute infrastructure.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L References
Timeline
Related Vulnerabilities
CVE-2023-3765 10.0 MLflow: path traversal allows arbitrary file read
Same attack type: Data Extraction CVE-2025-5120 10.0 smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Code Execution CVE-2025-2828 10.0 LangChain RequestsToolkit: SSRF exposes cloud metadata
Same attack type: Data Extraction CVE-2025-53767 10.0 Azure OpenAI: SSRF EoP, no auth required (CVSS 10)
Same attack type: Data Extraction CVE-2025-59528 10.0 Flowise: Unauthenticated RCE via MCP config injection
Same attack type: Code Execution