Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Unauthenticated network POST with no user interaction (AV:N/AC:L/PR:N/UI:N); arbitrary file read gives C:H and arbitrary file write gives I:H, with no availability impact so A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
SoftVC VITS Singing Voice Conversion through commit 730930d contains a path traversal vulnerability in the full-song inference server that allows unauthenticated remote attackers to read and exfiltrate arbitrary files by supplying attacker-controlled filesystem paths through the audio_path field of an unauthenticated POST request to the /wav2wav route. Attackers can pass arbitrary server-side paths verbatim to librosa.load, torchaudio.load, and soundfile.write sinks, causing the server to decode and return file contents via the HTTP response body while also writing attacker-specified .wav files to arbitrary locations on the filesystem.
AnalysisAI
Arbitrary file read and write in SoftVC VITS Singing Voice Conversion (so-vits-svc, through commit 730930d) lets unauthenticated remote attackers exfiltrate any server-readable file and plant .wav files anywhere the process can write, by supplying attacker-controlled paths in the audio_path field of the /wav2wav Flask route. Because the full-song inference server passes the value verbatim to librosa/torchaudio/soundfile sinks, a single POST can both leak file contents in the HTTP response and drop files on disk. Publicly available exploit code exists (VulnCheck advisory and geo-chen writeup); no public evidence of active exploitation at time of analysis.
Technical ContextAI
so-vits-svc is a popular open-source deep-learning project for singing voice conversion built on the VITS/SoftVC architecture, typically run in Python with a Flask HTTP server exposing inference endpoints. The /wav2wav route is meant to accept an audio file for full-song inference, but the audio_path parameter is trusted as a raw filesystem path and handed directly to audio libraries - librosa.load and torchaudio.load (read sinks) and soundfile.write (write sink) - without normalization or containment to an allowed directory. This is a classic CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / path traversal): user input reaches a filesystem operation, so '../' sequences or absolute paths escape the intended media directory. The read sinks decode the target file and return its bytes in the response body, while the write sink lets the attacker choose the output location and filename.
RemediationAI
No vendor-released patch is identified at time of analysis, so apply compensating controls immediately if the server is running. First, do not expose the so-vits-svc inference server to untrusted networks - bind it to localhost or place it behind an authenticating reverse proxy and firewall the port, since the /wav2wav route is unauthenticated by design. Second, if you maintain the code, sanitize audio_path before it reaches librosa.load, torchaudio.load, and soundfile.write: reject absolute paths and '..' sequences, canonicalize with os.path.realpath, and enforce that the resolved path stays within a dedicated upload/output directory (an allowlist of extensions and a chroot-style base directory); trade-off is that legitimate callers must use relative paths under that base. Third, run the process under a low-privilege account with minimal filesystem access to limit what arbitrary read/write can reach. Monitor the VulnCheck advisory (https://www.vulncheck.com/advisories/softvc-vits-singing-voice-conversion-path-traversal-via-wav2wav-flask-route) for an official fixed commit or release and upgrade once published.
Same weakness CWE-22 – Path Traversal
View allSame technique Path Traversal
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-48333
GHSA-cc9w-9gmw-9p6j