Лабораторная работа №2 Разбор методик эксплуатации уязвимостей Задание:
- Список найденных ячейкой уязвимостей за 2022-2025 год 5 RCE и 5 LPE
- Выбрать любые 4 (2 LPE и 2 RCE) репозитория и разобрать работу программного кода
1.Список найденных ячейкой уязвимостей за 2022-2025 год 5 RCE и 5 LPE
Таблица 1-Уязвимости удаленного выполнения кода (RCE)
| Идентификатор | Тип | CVSS | Год | PoC |
|---|---|---|---|---|
| CVE-2025-55182 | RCE | 10.0 | 2025 | PoC |
| CVE-2025-24813 | RCE (Apache Tomcat) | Нет данных | 2025 | PoC |
| CVE-2024-5522 | RCE (WordPress) | Нет данных | 2024 | PoC |
| CVE-2023-38831 | RCE (WinRAR) | 7.8 | 2023 | PoC |
| CVE-2022-0847 | RCE/LPE (Dirty Pipe, Linux) | 7.8 | 2022 | PoC |
Таблица 2-Уязвимости повышения привилегий (LPE)
| Идентификатор | Тип | CVSS | Год | PoC |
|---|---|---|---|---|
| CVE-2024-1086 | LPE (ядро Linux) | 7.8 | 2024 | PoC |
| CVE-2025-24071 | LPE (Windows) | Нет данных | 2025 | PoC |
| CVE-2021-22555 | LPE (ядро Linux, Netfilter) | 7.8 | 2021 (активна в 2022-2025) | PoC |
| CVE-2019-13272 | LPE (ядро Linux) | 7.8 | 2019 (активна в 2022-2025) | PoC |
| CVE-2025-8088 | LPE (WinRAR, Zero-Day) | Нет данных | 2025 | PoC |
- Разбор работы PoC-кода (2 RCE и 2 LPE)
**1.**CVE-2025-55182 (RCE) — "React2Shell" в React Server Components
Ссылка на PoC: https://github.com/msanft/CVE-2025-55182
Суть уязвимости: Критическая уязвимость (CVSS 10.0) в React Server Components, связанная с небезопасной десериализацией данных HTTP-запросов.
Механизм работы эксплойта:
- Создание полезной нагрузки: Эксплойт формирует специальный HTTP-запрос (обычно POST) к конечной точке серверной функции React.
- Внедрение кода: В тело запроса помещается сериализованный объект, который содержит произвольный код (например, команду выполнения системной команды os.command() на сервере Node.js).
- Эксплуатация десериализации: Уязвимый сервер React при обработке запроса десериализует этот объект без должной проверки.
- Выполнение кода: В процессе десериализации внедренный код исполняется на сервере с правами пользователя, под которым работает приложение, что приводит к полному контролю над сервером.
**2.**CVE-2023-38831 (RCE) — WinRAR
Ссылка на анализ: https://github.com/z3r0sw0rd/CVE-2023-38831-PoC
Суть уязвимости: Уязвимость в алгоритме обработки архивов WinRAR. При двойном клике на файл внутри архива (особенно с расширением .cmd или .bat) может быть запущен не тот файл, на который показывает пользователь.
Механизм работы эксплойта (на основе публичных отчетов):
- Создание "ловушки": Злоумышленник создает архив, в который помещает два файла: легитимный (например, photo.jpg) и вредоносный скрипт (photo.jpg.cmd или photo.jpg.bat).
- Использование спецсимволов: Файлы упаковываются таким образом, что при отображении в WinRAR пользователь видит только photo.jpg. Вредоносный скрипт маскируется.
- Некорректная обработка: Когда пользователь пытается открыть photo.jpg двойным кликом, WinRAR из-за логической ошибки временно извлекает и запускает на выполнение связанный с ним скрипт (photo.jpg.cmd).
- Получение контроля: Запущенный скрипт выполняется в контексте текущего пользователя, позволяя загрузить и запустить дальнейшую полезную нагрузку.
3.CVE-2024-1086 (LPE) — Ядро Linux
Ссылка на PoC: https://github.com/Notselwyn/CVE-2024-1086
Суть уязвимости: Уязвимость в подсистеме Netfilter (nf_tables) ядра Linux, приводящая к использованию памяти после освобождения (Use-After-Free).
Механизм работы эксплойта:
- Подготовка примитивов: Эксплойт, работая от непривилегированного пользователя, создает набор сокетов и манипулирует очередями сообщений (msg_msg). Это стандартный метод для создания контролируемого расположения объектов в памяти ядра.
- Вызов уязвимой операции: Эксплойт выполняет последовательность сетевых операций, которые приводят к вызову уязвимой функции в Netfilter.
- Триггеринг UAF: В определенный момент уязвимый код освобождает область памяти (например, связанную с правилом фильтрации), но сохраняется указатель на нее.
- Перехват контроля: Используя заранее подготовленные структуры msg_msg, эксплойт немедленно занимает только что освобожденную память своим данными.
- Повышение привилегий: Когда ядро позднее обращается по "висящему" указателю, оно выполняет операции уже с подконтрольными злоумышленнику данными. Это позволяет перезаписать критически важные структуры (например, cred), что дает процессу права пользователя root.
**4.**CVE-2022-0847 (LPE) — "Dirty Pipe" в ядре Linux
Ссылка на упоминание: https://github.com/AlexisAhmed/CVE-2022-0847-DirtyPipe-Exploits
Суть уязвимости: Ошибка в механизме копирования данных в конвейер (pipe) ядра Linux, позволяющая перезаписывать содержимое только для чтения файлов.
Механизм работы эксплойта:
- Создание канала: Эксплойт создает конвейер (pipe) и заполняет его буфер данными.
- Манипуляция флагами страниц: После заполнения эксплойт сбрасывает флаг PIPE_BUF_FLAG_CAN_MERGE у страниц буфера конвейера. Этот флаг разрешает объединение новых данных с уже существующими в буфере.
- Чтение целевого файла: Эксплойт открывает целевой файл, доступный только для чтения (например, /etc/passwd или бинарный su), и сбрасывает его данные в только что подготовленный конвейер.
- Перезапись данных: Теперь, записывая данные в тот же конвейер, эксплойт объединяет их с данными целевого файла, находящимися в буфере, благодаря ранее установленному флагу.
- Изменение файла: В результате страницы памяти ядра, содержащие данные файла только для чтения, модифицируются. Это позволяет, например, добавить нового пользователя с UID 0 в /etc/passwd или модифицировать бинарный файл для последующего получения привилегий.