
Собственный PoC для CVE-2021-21974, эксплуатирующий переполнение стека в ESXI. Поддерживает только цели и окружения, указанные в проекте. Предназначен для обучения и исследований.
PoC переполнения кучи OpenSLP в VMware ESXi с удаленным выполнением кода
Автор: Aiyakami
CVE-2021-21974 — это уязвимость переполнения кучи в службе OpenSLP VMware ESXi. Неаутентифицированный злоумышленник может отправить специально сформированный пакет на службу SLP (порт 427 по умолчанию) целевого хоста ESXi по сети, что приводит к удаленному выполнению кода (RCE).
Данный репозиторий содержит однофайловый PoC на Python, который стабильно воспроизводит уязвимость на реальной среде ESXi 6.7. Эксплойт срабатывает по чистому сетевому пути, для выполнения команды не требуются локальные учетные данные или SSH-доступ к цели.
| Параметр | Значение |
|---|---|
| Целевая система | VMware ESXi 6.7.0 Update03 |
| Номер сборки | 14320388 |
| Уязвимая служба | OpenSLP (slpd), порт 427 |
| Процент успешных тестов | 100% |
Официальный ISO-образ VMware-VMvisor-Installer 6.7.0 update03 build-14320388:
Данный образ является оригинальным установочным образом для указанной выше тестовой среды и позволяет полностью воспроизвести PoC со 100% успехом.
На следующих двух скриншотах показаны фактические результаты выполнения PoC на ESXi 6.7 build-14320388:


# Целевой хост ESXi должен запускать службу slpd (порт 427 по умолчанию)
python CVE-2021-21974.py
При запуске скрипт выводит подпись автора, затем выполняет полную цепочку эксплуатации:
утечка информации на этапе stage1 → чтение произвольного адреса → утечка базового адреса libc → определение буфера DB → перезапись __free_hook на system → выполнение команды через SrvDeReg.
Команда COMMAND по умолчанию:
echo PWNED_BY_CVE_2021_21974>/tmp/p
В случае успеха на целевом хосте в файле /tmp/p будет содержаться строка PWNED_BY_CVE_2021_21974.
Примечание: Данный PoC основан на фиксированных параметрах раскладки кучи и зависит от версий slpd / glibc на целевом ESXi 6.7 build-14320388. При смене окружения необходимо соответствующим образом скорректировать параметры fd / size / pacing.
Данный проект предназначен только для авторизованных исследований в области безопасности, а также для использования в учебных сценариях CTF / AWD в изолированной песочнице. Запрещается использовать его на неавторизованных реальных системах. Пользователь несет всю ответственность за любые правовые последствия, возникшие в результате использования.