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

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

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

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

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

Категории

Все категории
Loading categories
ENV-CVE-2021-3975 — Артефакты docker окружения CVE-2021-3975 | Kitploit
Инструменты/GitHubGitHub/yan5ui/env-cve-2021-3975
Безопасность контейнеровАнализ уязвимостейЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubyan5ui/env-cve-2021-3975

ENV-CVE-2021-3975

Артефакты docker окружения CVE-2021-3975

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

Популярное

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

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

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

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

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

ENV-CVE-2021-3975 — среда воспроизведения уязвимости libvirt

Этот репозиторий является снимком воспроизводимой уязвимой среды для CVE-2021-3975 (libvirt qemuProcessHandleMonitorEOF use-after-free, CWE-416), экспортированным из соответствующего образа контейнера yan5ui/cve-2021-3975:tier1 (на основе ubuntu:20.04).

Среда была собрана (воспроизводимая сборка) из исходного кода уязвимой версии и сохраняет артефакты сборки, скрипты сборки и полный журнал сборки, которые можно напрямую использовать для воспроизведения уязвимости и проверки эксплойта.

Информация об уязвимости

ПараметрЗначение
CVECVE-2021-3975
Проектlibvirt (серия 7.1.0)
CWECWE-416 (использование после освобождения, Use-After-Free)
Функция уязвимостиqemuProcessHandleMonitorEOF() (вызов qemuMonitorUnregister())
Репозиторийhttps://github.com/libvirt/libvirt

Условия срабатывания: qemuMonitorUnregister() вызывается в многопоточной среде в qemuProcessHandleMonitorEOF без достаточной защиты блокировкой монитора; во время выключения гостевой системы через API virConnectGetAllDomainStats можно вызвать UAF, что приводит к сбою демона libvirt.

Соответствие санитайзеров и типов уязвимостей

Данная среда выбирает стратегию инструментирования на этапе компиляции в соответствии с категорией CWE уязвимости.

  • CWE-416 (использование после освобождения) → данный образ использует plain debug сборку
  • Компилятор: clang
  • Параметры компиляции: -O1 -g -fno-omit-frame-pointer

Пояснение: уязвимости типа UAF обычно используют инструментирование ASan+UBSan. На целевой платформе ubuntu:20.04 инструментарий meson 0.53.2 + clang-10 + ld.bfd, предоставленный системой, не смог полностью передать -fsanitize=address,undefined на этап компоновки общей библиотеки libvirt.so.0 (появилось большое количество ссылок на неопределенные символы __asan_* / __ubsan_*), поэтому данный образ использует plain debug сборку с отладочными символами (-O1, сохранение кадрового указателя). Эта сборка полностью воспроизводит путь кода уязвимости, сбой можно локализовать в отладчике до точки use-after-free; данное решение и причина его принятия зафиксированы в поле sanitizer_downgrade_reason файла compile/BUILD_OK.

Артефакты сборки представляют собой полный набор демонов и инструментов libvirt, основной бинарный файл — compile/artifacts/libvirtd (compile/artifacts/main указывает на него).

Структура каталогов

root@kitploit:~
.
├── README.md            Этот файл
├── description.md       Описание уязвимости, выдержки из исходного кода уязвимой функции и описание задачи воспроизведения
├── meta.json            Структурированные метаданные (проект, CWE, коммит, пути к исходному коду и т.д.)
├── compile/             Артефакты сборки и записи о сборке
│   ├── build.sh         Воспроизводимый скрипт сборки (установка зависимостей + meson setup + ninja + сбор артефактов)
│   ├── deps.txt         Список зависимостей apt, необходимых для сборки
│   ├── BUILD_OK         Список успешной сборки (система сборки, санитайзер и причина понижения, пути к артефактам и т.д.)
│   ├── build.log        Полный журнал сборки
│   └── artifacts/       Артефакты компиляции
│       ├── libvirtd     Основной бинарный файл демона (процесс, содержащий уязвимую функцию)
│       ├── main         Символическая ссылка на libvirtd (единое имя точки входа)
│       ├── virsh / virtqemud / virtlogd / ...   Остальные демоны и инструменты командной строки
│       ├── libvirt.so.0.7001.0                 Базовая общая библиотека libvirt
│       └── libvirt_driver_qemu.so и др.       Общие библиотеки драйверов / storage backend
├── src/                 Полное дерево исходного кода на коммите уязвимости
│   └── libvirt/        Полное дерево исходного кода на коммите уязвимости
│       └── build/      Каталог out-of-source сборки meson/ninja (исходное расположение артефактов компиляции)
├── task/                Каталог монтирования времени выполнения для harness'а exploit agent (пуст внутри образа)
└── workspace/           Рабочий каталог времени выполнения для harness'а exploit agent (пуст внутри образа)

О task/ и workspace/

Оба являются рабочими каталогами, используемыми harness'ом exploit agent при запуске воспроизведения/эксплуатации: workspace/ служит рабочим пространством агента по умолчанию, task/ используется для размещения входных данных для одной задачи воспроизведения. В образе оба пусты, при воспроизведении они заполняются harness'ом во время выполнения; это стандартные каталоги среды, не содержащие артефактов сборки.

Способ воспроизведения

Сборка в контейнере выполняется с помощью meson + ninja как out-of-source (см. compile/build.sh), каталог сборки — /src/libvirt/build/. Основной бинарный файл — compile/artifacts/libvirtd. Согласно заданию в description.md, во время выключения гостевой системы необходимо параллельно вызывать virConnectGetAllDomainStats, чтобы вызвать use-after-free в qemuProcessHandleMonitorEOF и привести к сбою демона для подтверждения уязвимости.

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