nginxの「njs」モジュールにCVSS 9.2の深刻なヒープバッファオーバーフロー 脆弱性 CVE-2026-8711

セキュリティニュース

投稿日時: 更新日時:

nginxの「njs」モジュールにCVSS 9.2の深刻なヒープバッファオーバーフロー脆弱性 CVE-2026-8711

F5(旧NGINX, Inc.)は2026年5月19日、NGINXのJavaScriptエンジンモジュール「NGINX JavaScript(njs)」にCVSS v4.0スコア9.2(Critical)・CVSS v3.1スコア8.1(High)のヒープバッファオーバーフロー脆弱性CVE-2026-8711が存在するとして、公式セキュリティアドバイザリ(K000161307)を発出しました。

未認証の攻撃者が細工したHTTPリクエストを送信することでNGINXワーカープロセスのヒープバッファオーバーフローを引き起こし、サービス妨害(DoS)を引き起こせます。また、Address Space Layout Randomization(ASLR)が無効化されている環境においてはリモートコード実行(RCE)も可能です。

本件は、同月に公開された「NGINX Rift(CVE-2026-42945)」——18年前から潜在し実際の攻撃への悪用が確認済みの別のNGINXヒープバッファオーバーフロー——とともに、2026年5月のNGINX複数脆弱性の同時開示という深刻な状況を形成しています。

この記事のサマリー

CVE-2026-8711(NGINX JavaScript njs モジュール)

  • CVE:CVE-2026-8711
  • CVSS v4.09.2(Critical)/CVSS v3.1:8.1(High)
  • 脆弱性の種類:ヒープバッファオーバーフロー(CWE-122)
  • 影響を受けるコンポーネント:NGINX JavaScript(njs)モジュール(ngx_http_js_module)バージョン0.9.4〜0.9.8
  • 攻撃の前提条件js_fetch_proxyディレクティブにクライアント制御可能なNGINX変数($http_*$arg_*$cookie_*等)が含まれ、かつngx.fetch()を呼び出すlocationブロックが存在すること
  • 認証要否不要(未認証での攻撃が可能)
  • 影響:DoS(ワーカープロセスの再起動)+ASLRが無効の環境ではRCE
  • 修正済みバージョンnjs 0.9.9
  • 影響を受けないF5製品:NGINX Plus・BIG-IP・BIG-IQ・F5 Distributed Cloud・F5OS(njsの該当設定パターンを使用していない場合)

CVE-2026-42945「NGINX Rift」(同時期に公開・実攻撃確認済み)

  • CVSS v4:9.2(Critical)
  • 18年前から潜在するngx_http_rewrite_moduleのバグ
  • 影響範囲:NGINX Open Source 0.6.27〜1.30.0・NGINX Plus R32〜R36
  • 実攻撃の確認あり(VulnCheck確認・PoCコード公開済み)
  • 修正版:1.31.0・1.30.1以降

CVE-2026-8711の技術詳細—「js_fetch_proxyとクライアント変数の組み合わせ」が引き金

脆弱性の仕組み

F5の公式アドバイザリ(K000161307)が示す脆弱性の発生条件は以下の通りです。

「NGINX Javascriptは、js_fetch_proxyディレクティブが少なくとも1つのクライアント制御のNGINX変数(例:$http_*$arg_*$cookie_*)で設定されており、かつNGINX Javascriptからngx.fetch()オペレーションを呼び出すlocationが存在する場合に脆弱性を持つ」

この条件が満たされた環境では、未認証の攻撃者が細工したHTTPリクエストを送信することで、ngx_http_js_module内のヒープメモリを破損させることができます。

影響の範囲

DoS(サービス妨害)として、ヒープバッファオーバーフローによりNGINXワーカープロセスが再起動し、サービスが一時的に停止します。ASLRの有効・無効に関わらず発生します。RCE(リモートコード実行)として、ASLRが無効kernel.randomize_va_space=0)に設定されている環境では、決定論的なヒープレイアウトを悪用して任意のコード実行が可能です。

F5はアドバイザリで「本問題はデータプレーンの問題であり、コントロールプレーンへの影響はない」と明記しています(CyberPress・Cryptika)。

CVE-2026-8711の影響製品と修正バージョン

F5の評価によれば、影響を受けるのはNGINX JavaScript(njs)モジュールの0.xブランチのみであり、バージョン0.9.4〜0.9.8が対象です。

製品 影響 対応
NGINX JavaScript (njs) 0.9.4〜0.9.8 影響あり njs 0.9.9以降に更新
NGINX Plus(njsの該当設定パターンなし) 影響なし
NGINX Open Source(njsの該当設定パターンなし) 影響なし
BIG-IP 影響なし
BIG-IQ 影響なし
F5 Distributed Cloud 影響なし
F5OS 影響なし
NGINX One Console 影響なし

同時期に公開されたCVE-2026-42945「NGINX Rift」——18年前から潜在・実攻撃確認済み

CVE-2026-8711と並行して、2026年5月はNGINXに対する複数の重大な脆弱性が集中的に公開されました。その中で最も深刻なのが「NGINX Rift(CVE-2026-42945)」です。

NGINX Riftの概要

項目 内容
CVE CVE-2026-42945
CVSS v4 9.2(Critical)
nginx.org公式分類 medium
F5アドバイザリ K000161019
脆弱性の種類 ngx_http_rewrite_moduleのヒープバッファオーバーフロー
潜在期間 2008年以来18年間(DepthFirst AI調査)
影響バージョン NGINX Open Source 0.6.27〜1.30.0 / NGINX Plus R32〜R36
修正バージョン Open Source: 1.31.0・1.30.1以降 / NGINX Plus: R36 P4・R32 P6以降
実攻撃の確認 あり(VulnCheck確認)
PoC公開 あり(DepthFirst AIが公開)

攻撃の条件

CVE-2026-42945が悪用されるには以下の3条件をすべて満たす必要があります。NGINXのrewriteルールに名前なしキャプチャグループ(Unnamed Capture Groups)が含まれること、ターゲットパスにリテラルの「?」(疑問符)が含まれること、直後に論理ブロックが続くことが必要です。

セキュリティ研究者Kevin Beaumont氏は「特定のNGINX設定が必要であり、攻撃者がその設定を発見または事前に知っている必要がある」と指摘しており、設定に依存する攻撃であることを強調しています(The Hacker News)。

Akamaiは2026年5月18日に自社のApp & API ProtectorにAdaptive Security Engine Rapid Ruleとして保護ルール(3000983)を展開しています。

2026年5月のNGINX脆弱性一覧(nginx.org公式セキュリティアドバイザリより)

2026年5月13日のF5/nginx.org公式アドバイザリでは、以下の複数の脆弱性が同時に公開されました(nginx.org Security Advisories)。

CVE 種別 対象モジュール 深刻度 影響バージョン 修正バージョン
CVE-2026-42945 バッファオーバーフロー ngx_http_rewrite_module medium 0.6.27〜1.30.0 1.31.0+・1.30.1+
CVE-2026-42926 HTTP/2リクエストインジェクション ngx_http_proxy_module medium 1.29.4〜1.30.0 1.31.0+・1.30.1+
CVE-2026-42946 バッファオーバーリード ngx_http_scgi_module / ngx_http_uwsgi_module medium 0.8.42〜1.30.0 1.31.0+・1.30.1+
CVE-2026-42934 バッファオーバーリード ngx_http_charset_module low 0.3.50〜1.30.0 1.31.0+・1.30.1+
CVE-2026-40460 HTTP/3アドレス詐称 HTTP/3 medium 1.25.0〜1.30.0 1.31.0+・1.30.1+
CVE-2026-40701 リゾルバのuse-after-free(OCSP) medium 1.19.0〜1.30.0 1.31.0+・1.30.1+

これらに加え、CVE-2026-8711(njs 0.9.4〜0.9.8)が2026年5月19日に公開されており、CVE-2026-9256(ngx_http_rewrite_module・別の新しいバッファオーバーフロー)も確認されています。

管理者が取るべき対応

CVE-2026-8711(njs)への対応

njsモジュールを使用しており、バージョン0.9.4〜0.9.8が稼働している場合はnjs 0.9.9以降に即時更新してください。

njsをアップデートできない場合の設定上の緩和策として、js_fetch_proxyディレクティブでクライアント制御可能な変数($http_*$arg_*$cookie_*等)を使用している箇所を特定し、クライアントが制御できない固定値に変更するか、当該locationブロックを一時的に無効化してください。また、ASLRが有効(kernel.randomize_va_space=2)であることを確認してください。これによりRCEのリスクを低減できます(CyberPress)。

CVE-2026-42945(NGINX Rift)・その他のCVEへの対応

NGINX Open Sourceについては、1.31.0または1.30.1以降にアップデートしてください。NGINX Plusについては、R36 P4またはR32 P6以降にアップデートしてください。VulnCheckが実攻撃を確認・PoCが公開済みであることを踏まえ、優先度を高く設定して即時適用することを推奨します。

参考情報(1次ソース)