
NGINX Open Source、NGINX Plus、または NGINX ベースの ingress/controller を実行している組織は、CVE-2026-42945 の影響を受けているか確認し、エクスプロイトが本番環境に到達する前にパッチ適用または再設定を行うべきです。
このリポジトリは、所有またはテスト許可を得たシステム上での認可された防御目的のための読み取り専用、非エクスプロイトスキャナーを提供します。
| 項目 | 詳細 |
|---|---|
| CVE | CVE-2026-42945 |
| Name | NGINX Rift |
| コンポーネント | ngx_http_rewrite_module(ヒープバッファオーバーフロー) |
| 影響を受けるバージョン | NGINX Open Source 0.6.27 から 1.30.0 まで |
| 修正バージョン | 1.30.1、1.31.0(+ ベンダーバックポート) |
| CVSS | 9.2(Critical) |
悪用には特定の rewrite 構成が必要です。
$1、$2、…)を使用する rewrite ディレクティブ? が含まれているserver/location スコープ内の別の rewrite、if、または set がそのキャプチャを使用している影響:
| チェック項目 | 方法 |
|---|
このスキャナーは、細工されたエクスプロイトリクエストを送信したり、ワーカーをクラッシュさせようとはしません。
cd nginx-cve-2026-42945
chmod +x scan_nginx_rift.py
# Best: run on each NGINX host with sudo
sudo python3 scan_nginx_rift.py --local
# Or scan a full config dump
sudo nginx -T 2>&1 | tee /tmp/nginx-full.txt
python3 scan_nginx_rift.py --local --config /tmp/nginx-full.txt
# Passive remote banner check (version only)
python3 scan_nginx_rift.py --url https://your-site.example/
# JSON for automation
python3 scan_nginx_rift.py --local --json --fail-on high
リスクが HIGH または CRITICAL の場合、終了コード 1 が返されます(CI ゲートの調整には --fail-on を使用)。
アップグレード:NGINX 1.30.1 / 1.31.0+ または OS/ベンダーのセキュリティパッケージにアップグレード。
再起動:アップグレード後は reload だけでなく、ワーカーを再起動(systemctl restart nginx)。
監査:全設定を監査:sudo nginx -T で $1/$2 と ? を含む rewrite ルールを検索。
一時的な緩和策:$1、$2 の代わりに名前付きキャプチャを使用:
# Vulnerable pattern (simplified)
rewrite ^/api/(.*)$ /internal?migrated=true;
set $original_path $1;
# Safer pattern
rewrite ^/api/(?<path>.*)$ /internal?migrated=true;
set $original_path $path;
Linux で ASLR が有効であることを確認(randomize_va_space=2)。
Kubernetes ingress、Helm チャート、生成された設定も確認 — /etc/nginx/nginx.conf だけではありません。
使用は、評価を許可されたインフラストラクチャに限ります。許可なくスキャンすると、ポリシーや法律に違反する可能性があります。
| バージョン | ローカル nginx -v またはパッシブな Server ヘッダー |
| 設定トリガー | nginx -T または設定ファイルのヒューリスティック解析 |
| ASLR(Linux) | /proc/sys/kernel/randomize_va_space |
| ガイダンス | 優先順位付けされた修復手順 |
| リスク | 意味 |
|---|
| CRITICAL | 既知のトリガーに一致する脆弱なバージョン + rewrite パターン |
| HIGH | 脆弱なバージョンと疑わしい rewrite、またはバージョン不明だがトリガーの可能性あり |
| MEDIUM | 脆弱なバージョン、スキャンした設定にトリガーなし(それでもパッチ適用が必要) |
| LOW | パッチ適用済みだが、危険な rewrite パターンが残っている |
| INFO | パッチ適用済み、スキャンした設定にトリガーパターンなし |