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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-5452 — Подробный технический анализ CVE-2024-5452, уязвимости удаленного выполнения кода в PyTorch Lightning через загрязнение свойства дельты DeepDiff, с доказательством концепции и рекомендациями по смягчению. | Kitploit
Инструменты/GitHubGitHub/skrkcb2/cve-2024-5452
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийОбучение и ОбразованиеБезопасность ИИ
GitHubskrkcb2/cve-2024-5452

CVE-2024-5452

Подробный технический анализ CVE-2024-5452, уязвимости удаленного выполнения кода в PyTorch Lightning через загрязнение свойства дельты DeepDiff, с доказательством концепции и рекомендациями по смягчению.

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

Популярное

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

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

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

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

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

CVE-2024-5452

01. Обзор RCE и pytorch-lightning

  • 1) Обзор RCE и pytorch-lightning

    RCE (Remote Code Execution) — это уязвимость, позволяющая злоумышленнику удаленно выполнять произвольный код в системе или приложении, и относится к CWE-94: Improper Control of Generation of Code ('Code Injection').

    PyTorch Lightning — это библиотека, упрощающая управление обучением моделей глубокого обучения на основе PyTorch, а DeepDiff — библиотека для сравнения двух объектов Python и анализа различий.

    CVE-2024-5452 — это уязвимость, которая возникает при использовании DeepDiff и Lightning в веб-приложении Lightning для работы с весами моделей ИИ, из-за слабой проверки заголовков DeepDiff и загрязнения атрибутов дельты, что приводит к RCE при десериализации.

    Давайте рассмотрим поток кода, который приводит к уязвимости, позволяющей злоумышленнику внедрять произвольные объекты или выполнять удаленный код (RCE), и найдем меры противодействия.

02. Анализ уязвимости десериализации в среде pytorch-lightning

  • 2.1 Анализ атаки с использованием загрязнения Delta в DeepDiff

    [Рисунок 6] показывает поток второго запроса после настройки дельты: run_once() -> maybe_apply_change() -> _collect_deltas_from_ui_and_work_queues() На [Рисунок 7] проверка isinstance в _collect_deltas_from_ui_and_work_queues() обходится с помощью загрязненной настройки (isinstance(delta, _DeltaRequest) == False), что приводит к выполнению ветки else. Для понимания [Рисунок 8] выводит результаты isinstance(delta, _DeltaRequest), delta, _DeltaRequest(тип). Первый запрос — это нормальный запрос для настройки манипуляции, а следующий запрос показывает, что тип _DeltaRequest загрязнен str, что обходит условие. Далее рассмотрим следующий целевой метод _process_requests. Как видно на [Рисунок 9], аналогично предыдущему, _process_requests обходит проверку isinstance(request, _APIRequest) с помощью настроек из POC-кода клиента справа. Это загрязнение — случай, когда isinstance(str, OrderSet) возвращает True. Мы увидели два типа загрязнения isinstance. Далее настройка создается так, чтобы через загрязнение можно было вызывать атрибуты. После обхода isinstance и настройки функции на [Рисунок 10], устанавливается «фиксация внутреннего состояния» (очистка _INTERNAL_STATE_VARS: ()), что делает невозможной проверку внутреннего состояния на [Рисунок 11].

В pytorch-lightning можно атаковать, отправляя загрязненные атрибуты дельты в конечную точку /api/v1/delta среди точек DeepDiff веб-приложения.
Рассмотрим пример, чтобы понять, как загрязнение dunder-атрибутов дельты вызывает уязвимость десериализации объектов.

1) Поток атаки с использованием загрязнения Delta в DeepDiff

Первый запрос: пример атаки клиента, настройка загрязнения -> слабая проверка заголовков в /api/v1/delta DeepDiff -> сохранение состояния через загрязнение.

Описание изображения

[Рисунок 1] POC - Атака на конечную точку

Описание изображения

[Рисунок 2] POC - Внедрение уязвимости / Содержимое полного загрязнения

Описание изображения

[Рисунок 3] lightning/api/core/api.py / Часть логики слабой проверки заголовков

Описание изображения

[Рисунок 4] lightning/api/core/app.py / Участок настройки

Описание изображения

[Рисунок 5] lightning/api/core/app.py / Участок сохранения настройки

Первый запрос обходит проверку заголовков /api/v1/delta ([Рисунок 3]) с помощью [Рисунок 1], внедряет поддельную настройку загрязнения (дельта) [Рисунок 2] и сохраняет настройку через [Рисунок 4], [Рисунок 5]. Теперь посмотрим, как работают настройки этой поддельной дельты во втором запросе.

Описание изображения Описание изображения

[Рисунок 6] lightning/api/core/app.py / Начальный поток маршрутов


Описание изображения

[Рисунок 7] Случай загрязнения isinstance

Описание изображения

[Рисунок 8] Случай загрязнения isinstance 1

Описание изображения

[Рисунок 9] Случай загрязнения isinstance 2

Описание изображения

Описание изображения

Описание изображения

[Рисунок 10] Случай загрязнения isinstance 3

Описание изображения

[Рисунок 11_1] Функция проверки _INTERNAL_STATE_VARS в /lightning/app/core/flow.py

Описание изображения

[Рисунок 11_2] __setattr__ в /lightning/app/core/flow.py

На [Рисунок 11] завершается общее загрязнение и настройка.

Описание изображения

[Рисунок 12] RCE Commnad

Описание изображения

Описание изображения

[Рисунок 13] Ответ RCE

В итоге на [Рисунок 13] вызывается exec с правами root для выполнения команды с [Рисунок 12].

2) Краткий пример атаки с использованием загрязнения Delta в DeepDiff (слева: сервер lightning App, справа: клиент)

Описание изображения

03. Меры противодействия

Мы рассмотрели поток выполнения уязвимости RCE через десериализацию объектов (CVE-2024-5452) в среде lightning. Поскольку это атака, захватывающая сам сервер, меры противодействия важны. В связи с этим предлагаем обновление до последней версии.

  • Обновление lightning

    Если версия lightning <= 2.2.1, обновите ее до версии lightning > 2.3.3.
  • Краткая модификация библиотеки lightning

    Этот метод является временным решением для крайних случаев, используйте его только для справки. Добавление простой логики в конечную точку /api/v1/delta (путь /lightning/app/core/api) или усиление проверки сеанса выше. depence
  • Обнаружение и блокировка с помощью IPS

    Атака тестировалась через Postman с указанием dunder-атрибутов в JSON. image 20250210_143207

04. Заключение

Мы рассмотрели уязвимость, вызывающую RCE путем загрязнения dunder-атрибутов через Lightning и DeepDiff. Эта уязвимость возникает из-за слабой проверки заголовков и последующей слабой проверки атрибутов дельты при десериализации объектов.

05. Ссылки

(poc) https://security.snyk.io/vuln/SNYK-PYTHON-PYTORCHLIGHTNING-7218866
(nist) https://nvd.nist.gov/vuln/detail/CVE-2024-5452

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