Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
NGINX_RIFT_SCAN_CVE_2026_42945 — Nginx リライト CVE スキャン (CVE-2026-42945 nginx-rift CVE-2026-9256) | Kitploit
ツール/GitHubGitHub/friparia/nginx_rift_scan_cve_2026_42945
静的分析脆弱性スキャナーエクスプロイト構成監査ウェブセキュリティ設定ミス
GitHubfriparia/nginx_rift_scan_cve_2026_42945

NGINX_RIFT_SCAN_CVE_2026_42945

Nginx リライト CVE スキャン (CVE-2026-42945 nginx-rift CVE-2026-9256)

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
3492ヶ月前Kitploit レビュー済み

NGINX Rift 設定スキャナー

言語:日本語 | English

これは、NGINX設定にCVE-2026-42945(NGINX Rift)およびCVE-2026-9256のリスクパターンが存在するかどうかをチェックする軽量スクリプトです。

この脆弱性は、depthfirstが記事「NGINX Rift: Achieving NGINX RCE via an 18-Year-Old Vulnerability」で公開しました。記事とF5/NVDの説明によると、リスクはngx_http_rewrite_moduleの特定の設定の組み合わせに関連しています:同じ設定コンテキスト内で、rewriteの置換文字列に?が含まれ、後続のrewrite、if、setが無名PCREキャプチャ変数(例:$1、$2)を参照している場合です。

チェック対象

本ツールは主に、NGINX設定ファイル内で以下の高リスクパターンをチェックします。

CVE-2026-42945

以下のような高リスクシーケンス:

root@kitploit:~
location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}

リスクポイントは単独のrewriteやsetではなく、同一コンテキスト内での実行順序です:

  1. rewrite が正規表現キャプチャを使用し、置換文字列に?を含む
  2. 後続のrewrite、if、setが$1、$2などの無名キャプチャ変数を使用する

この組み合わせにより、NGINXスクリプトエンジンの長さ計算と実際のコピー段階で状態の不一致が発生し、ヒープバッファオーバーフローを引き起こす可能性があります。

CVE-2026-9256

以下のような高リスクrewrite:

root@kitploit:~
location / {
    rewrite /wengine-auth-static/((.*)) /?$1$2 break;
}

リスク条件:

  1. 正規表現が重複キャプチャグループを含む場合(例:^/((.*))$ で$1が$2を含む)
  2. 置換文字列がリダイレクト(redirect)または引数(arguments)コンテキストで複数の重複キャプチャグループを参照する場合(例:$1$2)

注意:breakはリスクを排除しません。複数の重複キャプチャグループが?の後の引数部分に現れる限り、依然としてargumentsコンテキストに該当します。通常のURI rewrite(例:/$1$2 break)は本CVEのトリガー条件にはなりません。

スクリプトはこのパターンを検出した場合、明確にCVE-2026-9256とマークします。

影響範囲

depthfirstの記事で列挙された影響範囲は以下を含みます:

  • NGINX Open Source 0.6.27~1.30.1
  • NGINX Plus R32~R36
  • NGINXベースの一部のF5/NGINX製品

実際の修正バージョンと製品マトリックスについては、F5の公式発表またはディストリビューションのセキュリティアドバイザリを参照してください。たとえ影響範囲内のバージョンであっても、通常は特定のrewrite設定シーケンスが存在する場合にのみ脆弱性が発動します。

スクリプトは現在のNGINXバージョンと設定スキャン結果を同時に出力します:

  • バージョンが 0.6.27~1.30.1 かつ設定がリスクシーケンスに該当:NGINXのアップグレードまたは設定の調整が必要。
  • バージョンが 0.6.27~1.30.1 だが設定がリスクシーケンスに該当しない:アップグレードを推奨するが、本ツールでは設定トリガー条件は検出されなかった。
  • 設定がリスクシーケンスに該当するがバージョンが影響範囲外:設定を見直し、修正済みバージョンを維持することを推奨。

使用方法

現在のマシンの完全なNGINX設定を直接スキャン:

root@kitploit:~
python3 scan_rift.py

スクリプトは以下を実行します:

root@kitploit:~
nginx -T

現在のユーザーに完全な設定を読み取る権限がない場合は、sudoを使用してください:

root@kitploit:~
sudo python3 scan_rift.py

既にエクスポートされた設定ファイルをスキャンすることもできます:

root@kitploit:~
python3 scan_rift.py /path/to/nginx-full.conf

例えば、設定をエクスポートしてからスキャン:

root@kitploit:~
sudo nginx -T > nginx-full.conf
python3 scan_rift.py nginx-full.conf

出力説明

リスクシーケンスが検出されなかった場合:

root@kitploit:~
--- NGINX Rift Config Scanner (CVE-2026-42945 / CVE-2026-9256) ---
Current NGINX Version: nginx version: nginx/1.23.3
Version Status: Affected version range for NGINX Open Source (0.6.27 - 1.30.1)

[+] No vulnerable CVE-2026-42945 sequences or CVE-2026-9256 patterns detected.

[Recommendation]: Current NGINX version is in the affected range, but no vulnerable config pattern was detected. Upgrade is recommended, but config risk was not found by this scanner.

疑わしいシーケンスが検出された場合:

root@kitploit:~
--- NGINX Rift Config Scanner (CVE-2026-42945 / CVE-2026-9256) ---
Current NGINX Version: nginx version: nginx/1.23.3
Version Status: Affected version range for NGINX Open Source (0.6.27 - 1.30.1)

[!] VULNERABLE SEQUENCE FOUND (CVE-2026-42945):
    Context: location ~ ^/api/(.*)$ {
    [1. Rewrite With ?] rewrite ^/api/(.*)$ /internal?migrated=true;
    [2. Follow-up $N]   set $original_endpoint $1;

[Action Required]: Current NGINX version is affected and vulnerable config was found. Upgrade NGINX or adjust the reported rewrite pattern.

CVE-2026-9256の疑わしいパターンが検出された場合:

root@kitploit:~
--- NGINX Rift Config Scanner (CVE-2026-42945 / CVE-2026-9256) ---
Current NGINX Version: nginx version: nginx/1.23.3
Version Status: Affected version range for NGINX Open Source (0.6.27 - 1.30.1)

[!] VULNERABLE PATTERN FOUND (CVE-2026-9256):
    Context: location ^~ /wengine-auth-static/ {
    [Rewrite Overlapping Captures] rewrite /wengine-auth-static/((.*)) /?$1$2 break;
    [Context] arguments; overlapping refs: $1/$2

[Action Required]: Current NGINX version is affected and vulnerable config was found. Upgrade NGINX or adjust the reported rewrite pattern.

検出後は、該当する設定コンテキストが外部からのリクエストに到達可能かどうかを手動で確認し、速やかにNGINXをアップグレードするか設定を調整してください。

対処推奨

  • ベンダーがリリースした修正バージョンにアップグレードする。
  • すべてのlocation、server、ifなどのコンテキスト内のrewrite/setの組み合わせを確認する。
  • ?を含むrewriteの後に$1、$2などの無名キャプチャ変数を引き続き使用しない。
  • リダイレクトや引数で複数の重複キャプチャグループを連結しない(例:^/((.*))$と?$1$2の組み合わせ)。
  • breakをCVE-2026-9256の回避手段として使用しない。/?$1$2 breakでも該当する。
  • 代わりに名前付きキャプチャを使用する、変数を事前に保存する、処理ロジックを分割する、不要なクエリ文字列rewriteを削除する。
  • 修正前は、パブリックネットワークからアクセス可能なNGINXサービスとリバースプロキシエントリを優先的に処理する。
  • バージョンだけで判断せず、設定にトリガーシーケンスが含まれているかどうかも重要。

制限事項

このスクリプトは設定の静的スキャンツールであり、高リスクパターンを迅速に発見することを目的としています。脆弱性の悪用検証とは異なります。

  • 誤検知の可能性があるため、実際のNGINXコンテキストに基づいて手動で確認する必要があります。
  • 複数行のディレクティブ、include展開の異常、動的生成設定などがスキャン結果に影響を与える可能性があります。
  • リスクが検出されなかったとしても絶対的な安全性を意味するわけではなく、公式の修正バージョンにアップグレードする必要があります。

参考

  • depthfirst: https://depthfirst.com/research/nginx-rift-achieving-nginx-rce-via-an-18-year-old-vulnerability
  • NVD CVE-2026-42945: https://nvd.nist.gov/vuln/detail/CVE-2026-42945
  • F5 Advisory K000161019: https://my.f5.com/manage/s/article/K000161019
ツールをダウンロード