
世界で最もよく使われるWebサーバの18年分がすべて脆弱だった――これが「NGINX Rift」の要旨だ。2026年5月13日に開示されたCVE-2026-42945は、nginx(エンジンエックス)のngx_http_rewrite_module(リライトモジュール)に存在するヒープバッファオーバーフロー(CWE-122)で、CVSS v4.0スコア9.2の最高クラスに近い深刻度を持つ[1]。影響するバージョンはnginx 0.6.27から1.30.0まで、すなわちほぼ18年間にリリースされたすべてのビルドだ[1][2]。
積極悪用(active exploitation)が確認されており、パッチ済みバージョン(1.30.1または1.31.0)への更新は緊急対応レベルと判断すべきだ。
脆弱性の技術詳細
ngx_http_rewrite_moduleはnginxのデフォルト有効モジュールで、rewrite・return・ifディレクティブを処理する。CVSS 9.2の評価が示すように、認証なしの単一HTTPリクエストで発動できる[1]。ヒープ領域の管理に欠陥があり、特定のリクエストを送ることでヒープ破損を引き起こし、最終的にDoS(サービス停止)またはRCE(リモートコード実行)が可能になる。
| 属性 | 値 |
|---|---|
| CVE番号 | CVE-2026-42945 |
| 通称 | NGINX Rift |
| 脆弱なコンポーネント | ngx_http_rewrite_module |
| 影響バージョン | nginx 0.6.27〜1.30.0、NGINX Plus R32〜R36 |
| CVSSスコア | 9.2(v4.0) |
| 攻撃要件 | ネットワーク到達可能、認証不要、操作不要 |
| 影響 | DoS・RCE |
| 公開日 | 2026-05-13 |
| パッチ済みバージョン | nginx 1.30.1、nginx 1.31.0(メインライン)、NGINX Plus R37 |
影響範囲:Ingress NGINXを含む全スタック
nginxはWebサーバ・リバースプロキシ・ロードバランサーとして広く使われるため、直接影響を受ける箇所が多岐にわたる。
- nginx単体インストール:APT/YUMでインストールしたnginxのすべてのLTSバージョン(1.24系等)
- Docker公式イメージ:
nginx:1.24・nginx:alpine等、最新パッチ前のすべてのタグ - Kubernetes Ingress NGINX:
ingress-nginxコントローラーは内部的にnginxをバンドルしているため影響を受ける - NGINX Plus:R32〜R36が対象。F5はR37でパッチを提供済み
- nginxをバンドルするアプリ製品:一部のAPI Gateway・WAF製品がnginxをビルドインしているため、ベンダーのアドバイザリを個別確認する
緊急対応手順
Step 1 — インベントリ確認
まず組織内のnginxインスタンスをすべて洗い出す。Kubernetesクラスター内のIngress NGINXも必ず含める。
# バージョン確認
nginx -v
# または
nginx -V 2>&1 | grep -o "nginx/[0-9.]*"
# Kubernetes上のIngress NGINXバージョン確認
kubectl get pods -n ingress-nginx -o jsonpath='{.items[*].spec.containers[*].image}'
Step 2 — パッチ適用
nginx OSS(オープンソース版):
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install --only-upgrade nginx
# CentOS/RHEL(nginx公式リポジトリ使用時)
sudo yum update nginx
パッケージリポジトリが最新に更新されていない場合は、nginx.orgの公式バイナリを使う。Debian系では/etc/apt/sources.list.d/nginx.listにnginx.org/packages/のリポジトリが設定されているか確認する。
Kubernetes Ingress NGINX:
# Helmでの更新
helm repo update
helm upgrade ingress-nginx ingress-nginx/ingress-nginx --set controller.image.tag=<最新バージョン>
ngx_http_rewrite_moduleは通常ビルドインされているため、モジュールを無効化するよりバージョンアップが根本対策となる。
Step 3 — 積極悪用の痕跡確認
パッチ適用前のウィンドウに不審なリクエストがなかったかをnginxのアクセスログで確認する。異常に長いリクエストURL・rewriteを使うロケーションへの不審なアクセスパターンを重点的に調べる。
まとめ
18年分のnginxバージョンに影響するという事実は、「最新版を使っているから安全」という前提自体を崩す。今回の対応として必要な手順は明確だ。①インベントリ確認、②パッチ適用(1.30.1以上または1.31.0以上)、③Ingress NGINXのアップデート、④ログ確認。NGINX Plusを使っている環境はR37へのアップグレードが必須。
よくある質問(FAQ)
Q1. ngx_http_rewrite_moduleを無効化すれば脆弱性を回避できますか?
技術的には可能ですが、rewriteモジュールはデフォルト有効かつ多くのサイト設定でrewrite・return・ifディレクティブが使われています。無効化するとサイトの動作に影響が出るため、パッチ適用の方が現実的です。
Q2. nginxをリバースプロキシとして使っている場合も影響しますか?
はい。Webサーバ・リバースプロキシ・ロードバランサーどの構成でも、ngx_http_rewrite_moduleが有効なら影響を受けます。
Q3. Ingress NGINX Controllerのバージョンとnginxのバージョンの対応はどこで確認できますか?
kubernetes/ingress-nginxのGitHub Releasesページで各コントローラーバージョンに含まれるnginxのバージョンが記載されています。コントローラーv1.12.0以降に搭載されたnginxバージョンを確認してから更新してください。