nginx「NGINX Rift」:18年潜伏・全版対応の緊急手順

世界で最もよく使われる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のデフォルト有効モジュールで、rewritereturnifディレクティブを処理する。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.24nginx:alpine等、最新パッチ前のすべてのタグ
  • Kubernetes Ingress NGINXingress-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.listnginx.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モジュールはデフォルト有効かつ多くのサイト設定でrewritereturnifディレクティブが使われています。無効化するとサイトの動作に影響が出るため、パッチ適用の方が現実的です。

Q2. nginxをリバースプロキシとして使っている場合も影響しますか?
はい。Webサーバ・リバースプロキシ・ロードバランサーどの構成でも、ngx_http_rewrite_moduleが有効なら影響を受けます。

Q3. Ingress NGINX Controllerのバージョンとnginxのバージョンの対応はどこで確認できますか?
kubernetes/ingress-nginxのGitHub Releasesページで各コントローラーバージョンに含まれるnginxのバージョンが記載されています。コントローラーv1.12.0以降に搭載されたnginxバージョンを確認してから更新してください。

出典

[1] Akamai Security Research, “NGINX Critical Heap Buffer Overflow CVE-2026-42945 (NGINX Rift)” https://www.akamai.com/blog/security-research/nginx-critical-heap-buffer-overflow-cve-2026-42945

[2] nginx.org, “CHANGES” (nginx 1.30.1/1.31.0 パッチノート) https://nginx.org/en/CHANGES