CVE-2025-49840

9.8 CRITICAL

📋 TL;DR

This vulnerability allows remote code execution through unsafe deserialization in GPT-SoVITS-WebUI. Attackers can exploit the GPT_dropdown input to execute arbitrary code on the server when loading models. All users running vulnerable versions of GPT-SoVITS-WebUI are affected.

💻 Affected Systems

Products:
  • GPT-SoVITS-WebUI
Versions: 20250228v3 and prior
Operating Systems: All platforms running Python/PyTorch
Default Config Vulnerable: ⚠️ Yes
Notes: All deployments using the web interface are vulnerable regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise allowing attackers to execute arbitrary commands, steal data, install malware, or pivot to other systems.

🟠

Likely Case

Remote code execution leading to data theft, service disruption, or cryptocurrency mining malware installation.

🟢

If Mitigated

Limited impact if proper network segmentation and input validation are implemented, though risk remains.

🌐 Internet-Facing: HIGH - WebUI is designed for internet access and vulnerable to unauthenticated attacks.
🏢 Internal Only: HIGH - Even internal deployments are vulnerable to insider threats or compromised internal systems.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires minimal technical skill as the vulnerability is in a web interface with clear attack vectors.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: None available

Vendor Advisory: None available

Restart Required: Yes

Instructions:

No official patch available. Monitor GitHub repository for updates and apply immediately when released.

🔧 Temporary Workarounds

Disable Web Interface

all

Remove or disable the web interface component to prevent remote exploitation.

# Stop the web service
sudo systemctl stop gpt-sovits
# Or kill the process
pkill -f inference_webui.py

Network Isolation

linux

Restrict network access to the service using firewall rules.

# Linux iptables example
sudo iptables -A INPUT -p tcp --dport [PORT] -s [TRUSTED_IP] -j ACCEPT
sudo iptables -A INPUT -p tcp --dport [PORT] -j DROP

🧯 If You Can't Patch

  • Immediately take the service offline until a patch is available
  • Implement strict network segmentation and allow only trusted IPs to access the service

🔍 How to Verify

Check if Vulnerable:

Check if running GPT-SoVITS-WebUI version 20250228v3 or earlier by examining the version in the web interface or checking the source code.

Check Version:

Check the web interface or examine the project files for version information

Verify Fix Applied:

When a patch is released, verify the inference_webui.py file no longer passes user input directly to torch.load() in the change_gpt_weights function.

📡 Detection & Monitoring

Log Indicators:

  • Unusual model loading attempts
  • Errors from torch.load with unexpected file paths
  • Unusual process execution following web requests

Network Indicators:

  • HTTP POST requests to model loading endpoints with suspicious parameters
  • Outbound connections from the service to unexpected destinations

SIEM Query:

source="web_logs" AND (url="*change_gpt_weights*" OR url="*inference_webui*") AND (param="*GPT_dropdown*" OR param="*gpt_path*")

🔗 References

📤 Share & Export