NGINX njs の CVE-2026-8711 と関連脆弱性のリスク評価

  • URLをコピーしました!
目次

はじめに

2026 年 5 月 13 日、F5 は NGINX 関連の複数の脆弱性アドバイザリを同時に公開しました。その中には、「NGINX Rift」 と命名された ngx_http_rewrite_module の脆弱性(CVE-2026-42945、CVSS v4.0 9.2)など、影響範囲が極めて広いものが含まれており、すでに実環境での攻撃悪用も観測されています。

本記事のテーマである CVE-2026-8711 も、この同日公開された一連の脆弱性のひとつで、NGINX JavaScript(njs)の ngx_http_js_module モジュールに存在するヒープバッファオーバーフロー脆弱性です。CVSS v4.0 で 9.2 と「Critical」評価を受けており、認証なしの遠隔攻撃により NGINX ワーカープロセスのクラッシュ(DoS)や、特定条件下では任意コード実行(RCE)に至る可能性があります。

一方で、CVE-2026-8711 は 影響を受けるための前提条件が比較的明確 であり、すべての NGINX 環境が即座に危険にさらされるわけではありません。本記事では、F5 公式アドバイザリ(K000161307)と NVD 情報、および njs 0.9.9 リリースノートをもとに、自環境が CVE-2026-8711 の影響を受けるかを判定する 3 つの条件 と、同時期に公開された関連脆弱性(NGINX Rift 等)との比較 を整理します。最終的にどの脆弱性を最優先で対処すべきかの判断材料を提供することが本記事の目的です。

参考: K000161307: NGINX ngx_http_js_module vulnerability CVE-2026-8711(F5 Security Advisory)
“An unauthenticated attacker can exploit this vulnerability by sending crafted HTTP requests. This may cause a heap buffer overflow in the NGINX worker process leading to a restart. Additionally, for systems with Address Space Layout Randomization (ASLR) disabled, code execution is possible.”
(認証なしの攻撃者は、細工した HTTP リクエストを送ることで本脆弱性を悪用できます。これにより NGINX ワーカープロセスにヒープバッファオーバーフローが発生し、プロセスが再起動する可能性があります。さらに、ASLR が無効化されているシステムではコード実行も可能です。)
https://my.f5.com/manage/s/article/K000161307

この記事でわかること
  • CVE-2026-8711 の概要と CVSS スコア(v3.1 / v4.0 両軸)
  • 自環境が影響を受けるかを判定するための 3 つの条件(AND 条件)
  • 同時期に公開された関連脆弱性(CVE-2026-42945「NGINX Rift」等)との比較
  • F5 製品ファミリーごとの影響範囲一覧
  • 恒久対策(njs 0.9.9 以降へのアップグレード)と暫定対策の選択肢

CVE-2026-8711 の概要と CVSS スコア

CVE-2026-8711 は、NGINX JavaScript(njs)の ngx_http_js_module モジュールにおけるヒープバッファオーバーフロー脆弱性です。特定の設定パターンを使用しているサーバーで、認証なしの遠隔攻撃により悪用可能 という点が最大のリスク要素です。

脆弱性の種類: CWE-122(Heap-based Buffer Overflow)

本脆弱性は、CWE-122「Heap-based Buffer Overflow(ヒープ領域のバッファオーバーフロー)」に分類されます。js_fetch_proxy ディレクティブがクライアント制御変数($http_*$arg_*$cookie_* など)を含む値で構成されている際、ngx.fetch() 関数を呼び出すと、ワーカープロセスのヒープ領域でバッファオーバーフローが発生する不具合です。

njs の changelog では、本問題が njs 0.9.4(コミット dea83189)で導入されたことが明記されています。

参考: Changes with njs 0.9.9(NGINX 公式 changelog)
“Security: a heap buffer overflow might occur in a worker process when the js_fetch_proxy directive value contains nginx variables derived from the client request ($http_, $arg_, $cookie_, etc.) and the location’s JS handler invokes ngx.fetch() (CVE-2026-8711). The issue was introduced in dea83189 (0.9.4).” (セキュリティ: js_fetch_proxy ディレクティブの値にクライアントリクエスト由来の nginx 変数($http_、$arg_、$cookie_ など)が含まれ、ロケーションの JS ハンドラが ngx.fetch() を呼び出す場合に、ワーカープロセスでヒープバッファオーバーフローが発生する可能性があります(CVE-2026-8711)。本問題は 0.9.4(dea83189)で導入されました。)
https://nginx.org/en/docs/njs/changes.html

CVSS スコアと深刻度評価

F5 は本脆弱性について、CVSS v3.1 と v4.0 の両方のスコアを公開しています。

評価基準スコア深刻度
CVSS v3.18.1High(高)
CVSS v4.09.2Critical(緊急)

CVSS v4.0 の 9.2 は「Critical」レンジ(9.0 以上)の中でも非常に高い水準です。なお、F5 は 2024 年 8 月から、自社製品の脆弱性に対して CVSS v4.0 スコアを v3.1 と併記する 方針を取っています。CVSS v4.0 は v3.1 と比較して、攻撃の実行可能性や影響の波及範囲をより精緻に評価できる設計となっています。

攻撃の前提条件と影響

本脆弱性の実害は、攻撃成功時に以下のような形で現れます。

  • DoS シナリオ: NGINX ワーカープロセスがクラッシュし、自動再起動が発生する
  • RCE シナリオ: ASLR が無効化されているシステムでは、リモートからの任意コード実行が成立する可能性がある
  • コントロールプレーンへの影響: データプレーンのみに影響し、コントロールプレーンには影響しない

ただし、これらの影響を実際に受けるためには、3 つの条件がすべて同時に成立している必要があります。次のセクションで、その判定条件を詳しく整理します。

F5 内部 ID と発見者

F5 は本脆弱性に対して内部 ID 160 を割り当てています。発見者は udolemi 氏(S2W 所属) であり、責任ある開示プロセス(coordinated disclosure)に沿って F5 へ報告されました。

参考: K000161307 Acknowledgments セクション(F5 Security Advisory)
“F5 acknowledges udolemi (S2W) for bringing this issue to our attention and following the highest standards of coordinated disclosure.”
(F5 は本問題を私たちに報告し、責任ある開示の最高水準に従ってくれた S2W の udolemi 氏に感謝します。)
https://my.f5.com/manage/s/article/K000161307

影響を受ける条件: 3 つの条件の AND

CVE-2026-8711 は、CVSS v4.0 で 9.2「Critical」と高い深刻度評価を受けていますが、すべての NGINX 環境が即座に影響を受けるわけではありません。本脆弱性が悪用可能となるには、以下の 3 つの条件がすべて同時に成立 している必要があります。

条件内容該当する環境
条件 1njs 0.9.4 〜 0.9.8 を使用比較的新しい njs を使う一部の環境
条件 2js_fetch_proxy ディレクティブを使用njs でフォワードプロキシ機能を使う環境
条件 3クライアント制御変数($http_* 等)を js_fetch_proxy の URL に展開動的にプロキシ URL を組み立てる構成

これらはいずれも 意図的にそのような構成を組まなければ成立しない条件 であり、一般的な NGINX のリバースプロキシ・ロードバランサー用途では該当しない可能性が高い点が特徴です。

条件 1: njs 0.9.4 〜 0.9.8 を使用していること

本脆弱性は njs 0.9.4 で導入されたコミット(dea83189)に起因しており、njs 0.9.4 より前のバージョンや、修正版である 0.9.9 以降は影響を受けません

参考: NGINX Affected versions table(K000161307)
“NGINX JavaScript (njs) 0.x: Versions known to be vulnerable: 0.9.4 – 0.9.8. Fixes introduced in: 0.9.9. Severity/CVSS score: High/8.1 (CVSS v3.1), Critical/9.2 (CVSS v4.0).”
(NGINX JavaScript(njs)0.x: 影響を受ける既知のバージョン: 0.9.4 〜 0.9.8。修正導入バージョン: 0.9.9。深刻度 / CVSS スコア: High/8.1(CVSS v3.1)、Critical/9.2(CVSS v4.0)。)
https://my.f5.com/manage/s/article/K000161307

なお、njs は load_module modules/ngx_http_js_module.so; を nginx.conf に記述して明示的にロードしている環境でのみ稼働します。自環境の njs バージョンは後述の確認コマンドで取得できます。

条件 2: js_fetch_proxy ディレクティブを使用していること

js_fetch_proxy は、njs の ngx.fetch() メソッドがリクエストを送出する際に、フォワードプロキシサーバーを経由させるためのディレクティブ です。2025 年 10 月の njs アップデートで追加された比較的新しい機能です。

location /api {
    js_fetch_proxy http://user:pass@proxy.example.com:3128;
    js_content main.fetch_handler;
}

js_fetch_proxy使用していない環境(単純なリバースプロキシ、ロードバランサー、Web サーバーとして動作している環境)では、本脆弱性は発生しません

条件 3: クライアント制御変数を URL に展開していること

3 つの条件の中で最も重要なのが、この条件です。js_fetch_proxy のパラメーターに、クライアントが値を制御できる NGINX 変数($http_*$arg_*$cookie_* など)を含めて URL を組み立てている 構成が脆弱となります。

F5 公式アドバイザリでは、以下のような構成が脆弱な例として示されています。

参考: 脆弱な構成例(K000161307 Impact セクション)

server {
    listen 127.0.0.1:8080;
    server_name localhost;

    location / {
        # x-user と x-password ヘッダからプロキシ URL を構築
        js_fetch_proxy http://$http_x_user:$http_x_password@127.0.0.1:3128;
        js_content main.fetcher;
    }
}

https://my.f5.com/manage/s/article/K000161307

逆に、js_fetch_proxy静的な URL(変数を一切含まないハードコードされた URL)で指定している環境 は、本脆弱性の影響を受けません。

自環境が影響を受けるかの判定フロー

3 つの条件を順にチェックすることで、自環境が CVE-2026-8711 の影響を受けるかを判定できます。

条件 1〜3 のいずれかが非該当となれば、本脆弱性の影響を受けません。多くの一般的な NGINX 環境は、条件 2 または条件 3 の段階で「影響なし」と判定されると考えられます。

攻撃シナリオと潜在的な影響

3 つの条件をすべて満たす環境では、認証なしの遠隔攻撃者が細工した HTTP リクエストを送るだけで、ワーカープロセスに影響を与えることが可能になります。

DoS シナリオ: ワーカープロセス再起動

最も発生確率の高い攻撃結果が、NGINX ワーカープロセスのクラッシュと自動再起動 です。攻撃者は脆弱なヘッダ値を含むリクエストを連続的に送ることで、ワーカープロセスを繰り返しクラッシュさせることができます。

NGINX はワーカープロセスが異常終了した場合、マスタープロセスが自動的に新しいワーカーを起動する設計ですが、攻撃が継続的に行われると以下のような影響 が生じます。

  • リクエストを処理中のワーカーが落ちることで、進行中のリクエストが失敗する
  • ワーカー再起動中の処理能力低下により、応答遅延が発生する
  • 攻撃が大規模化すると、実質的なサービス停止(DoS)状態に至る

RCE シナリオ: ASLR 無効時のみ

ヒープバッファオーバーフローはリモートコード実行(RCE)に発展する可能性がありますが、F5 公式アドバイザリは 「ASLR が無効化されているシステムでのみ RCE が可能」 と明記しています。

参考: RCE 条件(K000161307 Security Advisory Description)
“Additionally, for systems with Address Space Layout Randomization (ASLR) disabled, code execution is possible.”
(加えて、ASLR が無効化されているシステムではコード実行が可能です。)
https://my.f5.com/manage/s/article/K000161307

自環境の ASLR 設定は以下のコマンドで確認できます。

cat /proc/sys/kernel/randomize_va_space
  • 0: ASLR 無効
  • 1: 部分的に有効(共有ライブラリ、スタック、mmap() のみ)
  • 2: 完全に有効(推奨設定)

現代の主要 Linux ディストリビューションではデフォルトで 2 が設定されており、その場合は本脆弱性が RCE に発展する可能性は実用上低い と判断できます。ただし、コンテナ環境やセキュリティ設定がカスタマイズされた特殊な環境では 0 または 1 の場合があるため、確認を推奨します。

コントロールプレーンへの影響: なし

F5 公式アドバイザリは、「本脆弱性はデータプレーンのみに影響し、コントロールプレーンには影響しない」 ことを明示しています。

参考: コントロールプレーン影響(K000161307 Impact セクション)
“There is no control plane exposure; this is a data plane issue only.”
(コントロールプレーンへの影響はありません。本問題はデータプレーンのみの問題です。)
https://my.f5.com/manage/s/article/K000161307

攻撃が成功した場合でも、攻撃者が NGINX の設定を書き換えたり、管理操作を実行したりすることはできません。

攻撃シナリオの総合評価

シナリオ発生確率影響度緩和要素
DoS(ワーカープロセスクラッシュ)高(条件成立時)中 〜 高NGINX のワーカー自動再起動機構
RCE(ASLR 無効時のみ)極めて低い現代の Linux ではデフォルト ASLR 有効
コントロールプレーン侵害影響なしデータプレーン限定の脆弱性

同時に公開された関連 CVE との比較

2026 年 5 月 13 日に F5 が同時公開した NGINX 関連 CVE 一覧

CVE 番号影響モジュールCVSS v4.0影響範囲
CVE-2026-42945ngx_http_rewrite_module9.2 CriticalNGINX OSS 0.6.27 〜 1.30.0、NGINX Plus R32 〜 R36
CVE-2026-8711ngx_http_js_module(njs)9.2 Criticalnjs 0.9.4 〜 0.9.8
CVE-2026-42926ngx_http_proxy_module8.3 HighNGINX HTTP/2 リクエストインジェクション
CVE-2026-42946ngx_http_scgi_module / ngx_http_uwsgi_module8.3 HighNGINX バッファオーバーリード
CVE-2026-42934ngx_http_charset_module4.8 MediumNGINX バッファオーバーリード
CVE-2026-40460HTTP/3アドレススプーフィング
CVE-2026-40701OCSP リゾルバ6.3 MediumUse-after-free

参考: nginx news(2026 年 5 月 13 日リリース告知)
“nginx-1.30.1 stable and nginx-1.31.0 mainline versions have been released, with fixes for HTTP/2 request injection vulnerability in the ngx_http_proxy_module (CVE-2026-42926), buffer overflow vulnerability in the ngx_http_rewrite_module (CVE-2026-42945)…”
(nginx-1.30.1 stable および nginx-1.31.0 mainline がリリースされ、ngx_http_proxy_module の HTTP/2 リクエストインジェクション脆弱性(CVE-2026-42926)、ngx_http_rewrite_module のバッファオーバーフロー脆弱性(CVE-2026-42945)などが修正されました。)
https://nginx.org/news.html

CVE-2026-42945(NGINX Rift)との比較: 実務上の緊急度の差

同時公開された脆弱性の中で最も注目すべき CVE-2026-42945(通称: NGINX Rift) と本記事のテーマを比較します。同じ CVSS v4.0 9.2 ですが、実務上の緊急度は NGINX Rift の方が大幅に高い と評価されています。

比較軸CVE-2026-8711(本記事のテーマ)CVE-2026-42945(NGINX Rift)
影響モジュールngx_http_js_module(njs)ngx_http_rewrite_module(NGINX 本体)
影響を受けるバージョンnjs 0.9.4 〜 0.9.8NGINX OSS 0.6.27 〜 1.30.0、NGINX Plus R32 〜 R36
影響範囲の広さ限定的(njs を明示的にロードした環境のみ)広範(一般的な NGINX 環境の大多数)
発生条件3 つの条件すべての成立が必要一般的な rewrite ディレクティブ構成で発生
バグの歴史njs 0.9.4(2025 年)で導入2008 年(約 18 年間存在)
PoC 公開現時点で公開なし公開済み(depthfirst による解析記事と PoC)
実環境での悪用確認なしVulnCheck が攻撃悪用を確認済み

参考: NGINX Rift の悪用観測(Help Net Security)
“A critical NGINX vulnerability (CVE-2026-42945) disclosed last week is being exploited by attackers, VulnCheck security researcher Patrick Garrity revealed on Saturday.”
(先週公開された Critical 級の NGINX 脆弱性 CVE-2026-42945 が攻撃者によって悪用されていることを、VulnCheck のセキュリティリサーチャー Patrick Garrity 氏が土曜日に明らかにしました。)
https://www.helpnetsecurity.com/2026/05/18/ngnix-vulnerability-exploited-cve-2026-42945/

F5 製品ファミリーごとの影響範囲一覧

製品カテゴリ影響備考
NGINX JavaScript(njs)影響あり0.9.4 〜 0.9.8 が脆弱
NGINX OSS(njs 以外)影響なし
NGINX Plus(njs 以外)影響なし
NGINX One Console影響なし
BIG-IP(全モジュール)影響なし
BIG-IQ Centralized Management影響なし
BIG-IP Next(SPK / CNF / for Kubernetes)影響なし
F5OS-A / F5OS-C影響なし
F5 Distributed Cloud(全サービス)影響なし
F5 Silverline(全サービス)影響なし
Traffix SDC影響なし
F5 AI Gateway影響なし

実環境での優先対処順序

2026 年 5 月時点で NGINX 環境を運用している管理者は、以下の順序で対処を進めることが推奨されます。

最優先: CVE-2026-42945(NGINX Rift)の対処

PoC 公開・実際の悪用も観測されており、多くの環境で該当する。NGINX OSS は 1.30.1 または 1.31.0、NGINX Plus は R32 P6 または R36 P4 へアップグレード

次点: CVE-2026-8711 の対処(本記事のテーマ)

njs を使っている環境のみ該当。njs 0.9.9 以降へアップグレード

その他の関連 CVE への対処

CVE-2026-42926、42946、40460、40701 などについても影響範囲を確認しつつ計画的に対処

対処方法: 恒久対策と暫定対策

恒久対策: njs 0.9.9 以降へのアップグレード

F5 公式アドバイザリで提示されている恒久対策は、njs 0.9.9 以降へのアップグレード のみです。本脆弱性に対する公式の Mitigation(暫定対策)は 「None(なし)」 と明記されています。

参考: Security Advisory Recommended Actions / Mitigation(K000161307)
“If you are running a version listed in the Versions known to be vulnerable column, you can eliminate this vulnerability by installing a version listed in the Fixes introduced in column. … Mitigation: None”
(影響を受けるバージョンを稼働中の場合、修正導入バージョンをインストールすることで本脆弱性を排除できます。… 緩和策: なし)
https://my.f5.com/manage/s/article/K000161307

自環境の njs バージョン確認方法

方法 1: njs CLI コマンドで確認

njs

対話モードが起動すると冒頭に interactive njs 0.9.x のようにバージョンが表示されます。Ctrl-D で終了できます。

方法 2: パッケージマネージャ経由で確認

# RHEL / AlmaLinux / Rocky Linux 系
rpm -qa | grep nginx-module-njs

# Ubuntu / Debian 系
dpkg -l | grep nginx-module-njs

# Alpine 系
apk info nginx-module-njs

方法 3: JavaScript コードから取得

function checkVersion(r) {
    r.return(200, njs.version + "\n");
}
export default { checkVersion };

アップグレード手順

# RHEL / AlmaLinux / Rocky Linux 系
sudo yum update nginx-module-njs

# Ubuntu / Debian 系
sudo apt update
sudo apt install --only-upgrade nginx-module-njs

# Alpine 系
sudo apk update
sudo apk upgrade nginx-module-njs

アップグレード後、NGINX を reload して設定を反映させます。

sudo nginx -t                    # 設定ファイルの構文チェック
sudo systemctl reload nginx      # マスタープロセスを保持したまま設定を再読み込み

参考: njs パッケージインストール手順(NGINX 公式 GitHub)
https://github.com/nginx/njs

公式の暫定対策が「None」である場合の実質的な緩和策

公式 Mitigation は「None」ですが、「3 つの条件の AND」を踏まえると、アップグレードまでの一時的な対処 として以下のような設定レベルでの緩和策が考えられます。

緩和策内容副作用
緩和策 Ajs_fetch_proxy の URL からクライアント制御変数を取り除き、静的な値に置き換えるプロキシ認証情報を動的に切り替える機能が失われる
緩和策 Bjs_fetch_proxy を一時的に無効化し、ngx.fetch() を直接外部 API に向けるフォワードプロキシ経由のアクセス制御が外れる
緩和策 Cngx_http_js_module 自体を一時的にロードしないnjs ベースのすべての機能が停止する

これらは公式の Mitigation ではなく、本脆弱性を完全に排除するものではありません。可能な限り早期に njs 0.9.9 以降へアップグレードすることを推奨します。

総合対応フロー

まとめ

本記事では、2026 年 5 月 13 日に F5 が公開した NGINX JavaScript(njs)の脆弱性 CVE-2026-8711 について、影響を受ける条件の判定方法、攻撃シナリオの評価、同時公開された関連 CVE との比較、および対処手順を整理しました。

  • CVE-2026-8711 は NGINX njs の ngx_http_js_module モジュールにおけるヒープバッファオーバーフロー(CWE-122)で、CVSS v4.0 9.2「Critical」評価
  • 影響を受けるのは「njs 0.9.4 〜 0.9.8 を使用」「js_fetch_proxy ディレクティブを使用」「クライアント制御変数($http_* 等)を URL に展開」の 3 条件をすべて満たす環境のみ
  • 攻撃が成功した場合の主な影響は DoS(ワーカープロセスクラッシュ)であり、RCE は ASLR 無効環境のみで成立するため、現代の Linux 環境での RCE リスクは低い。
  • 公式の Mitigation は「None」であり、恒久対策は njs 0.9.9 以降へのアップグレード のみ。
  • 同日公開の CVE-2026-42945(NGINX Rift)は NGINX OSS 0.6.27 〜 1.30.0 と NGINX Plus R32 〜 R36 に影響し、PoC 公開・実際の悪用が観測されており、CVE-2026-8711 より実務上の緊急度が高い
  • NGINX 環境を運用する管理者は、まず NGINX 本体(CVE-2026-42945 対応)を優先的に更新し、njs 利用環境では合わせて njs 0.9.9 以降への更新を推奨

以上、最後までお読みいただきありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

関西を拠点に活動する、現役インフラエンジニア。経験20年超。

大手通信キャリアにて、中〜大規模インフラ(ネットワーク・サーバ・クラウド・セキュリティ)の設計・構築およびプロジェクトマネジメントに従事。現場で直面した技術課題への対処や、最新の脆弱性情報への実務対応を、一次情報として発信しています。

保有資格
CCIE Lifetime Emeritus(取得から20年以上)/ VCAP-DCA / Azure Solutions Architect Expert

▶ 運営者プロフィール(詳細)

目次