Skip to content
Fencer Vulns
medium —

CVE-2025-41419 json

MS SWIFT WEB-UI RCE Vulnerability

published 2025-07-31 15 mo ago modified 2026-07-07 4 mo ago also GHSA-7c78-rm87-5673 , PYSEC-2026-1682

cvss
—
not scored
cisa kev
Not listed
not in CISA's catalog
epss
—
no EPSS score yet
public exploits
0
none known

Summary

**I. Detailed Description:**

This includes scenarios, screenshots, vulnerability reproduction methods. For account-related vulnerabilities, please provide test accounts. If the reproduction process is complex, you may record a video, upload it to Taopan, and attach the link.

1. Install ms-swift ``` pip install ms-swift -U ```

2. Start web-ui ``` swift web-ui --lang en ```

3. After startup, access through browser at [http://localhost:7860/](http://localhost:7860/) to see the launched fine-tuning framework program

4. Fill in necessary parameters In the LLM Training interface, fill in required parameters including Model id, Dataset Code. The --output_dir can be filled arbitrarily as it will be modified later through packet capture

5. Click Begin to start training. Capture packets and modify the parameter corresponding to --output_dir

You can see the concatenated command being executed in the terminal where web-ui was started

6. Wait for the program to run (testing shows it requires at least 5 minutes), and you can observe the effect of command execution creating files

**II. Vulnerability Proof (Write POC here):** ``` /tmp/xxx'; touch /tmp/inject_success_1; # ```

**III. Fix Solution:** 1. The swift.ui.llm_train.llm_train.LLMTrain#train() method should not directly concatenate parameters with commands after receiving commands from the frontend 2. The swift.ui.llm_train.llm_train.LLMTrain#train_local() method should not use os.system for execution, but should be changed to subprocess.run([cmd, arg1, arg2...]) format

## Author

* Discovered by: [TencentAISec](https://github.com/TencentAISec) * Contact: *[security@tencent.com](mailto:security@tencent.com)*

Patch / fix

  • pypi ms-swift 3.7.0

Affected packages

ecosystem package affected fixed in
pypi ms-swift
<3.7.0
3.7.0

Classification

Weakness
  • CWE-117 Improper Output Neutralization for Logs

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.