
Подробный технический анализ CVE-2024-5452, уязвимости удаленного выполнения кода в PyTorch Lightning через загрязнение свойства дельты DeepDiff, с доказательством концепции и рекомендациями по смягчению.
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), и найдем меры противодействия.
[Рисунок 1] POC - Атака на конечную точку
[Рисунок 2] POC - Внедрение уязвимости / Содержимое полного загрязнения
[Рисунок 3] lightning/api/core/api.py / Часть логики слабой проверки заголовков
[Рисунок 4] lightning/api/core/app.py / Участок настройки
[Рисунок 5] lightning/api/core/app.py / Участок сохранения настройки