
CVE-2026-42945の概念実証エクスプロイト。NGINXのリライトモジュールにおける重大なヒープバッファオーバーフローを利用し、認証不要のリモートコード実行を可能にします。セットアップスクリプトとPythonのシェル起動エクスプロイトを含む。
CVE-2026-42945 の RCE 概念実証。2008年に導入されたNGINXの ngx_http_rewrite_module における深刻なヒープバッファオーバーフローです。このバグにより、rewrite および set ディレクティブを使用するサーバーに対して、認証なしでリモートコード実行が可能になります。
この脆弱性は、他の3つのメモリ破損の問題(CVE-2026-42946、CVE-2026-40701、CVE-2026-42934)とともに、depthfirst のセキュリティ分析システムによって、NGINXソースを一度オンボーディングするだけで自律的に発見されました。
NGINXのスクリプトエンジンは2パスのプロセスを使用します。最初に必要なバッファサイズを計算し、次にデータをコピーします。rewrite の置換文字列に ? が含まれる場合、メインエンジンで is_args フラグが設定されますが、長さ計算パスは新しくゼロ初期化されたサブエンジンで実行されます。したがって:
is_args = 0 を参照 → 生のキャプチャ長を返す。is_args = 1 を参照 → ngx_escape_uri を NGX_ESCAPE_ARGS で呼び出し、エスケープ可能な各バイトを3バイトに拡張する。このコピーにより、攻撃者が制御するURIデータで小さすぎるヒープバッファがオーバーフローします。エクスプロイトは、クロスリクエストヒープフェングシュイを使用して、隣接する ngx_pool_t の cleanup ポインタを破損させます(URIバイトはNULLバイトを含められないため、POSTボディを介してスプレーします)。それを偽の ngx_pool_cleanup_s にリダイレクトし、プール破棄時に system() を呼び出します。
このバグの詳細については、https://t.me/p3Nt3st3rsTAr をご覧ください。
| 製品 | 影響を受けるバージョン | 修正バージョン |
|---|---|---|
| NGINX Open Source | 0.6.27 – 1.30.0 | 1.31.0, 1.30.1 |
| NGINX Plus | R32 – R36 | R36 P4, R35 P2, R32 P6 |
ベンダー勧告全文: https://my.f5.com/manage/s/article/K000160932
Ubuntu 24.04.3 LTS でテスト済み。
./setup.sh — コンテナをビルド。docker compose -f env/docker-compose.yml up — 脆弱なNGINXサーバーを起動。python3 poc.py --shell — シェルを取得。