NGINX njs の CVE-2026-8711 が FIX:ヒープバッファ・オーバーフローによる DoS 攻撃の可能性

New NGINX Vulnerability Allow Remote Attackers to Trigger Malicious Code

2026/05/20 CyberSecurityNews — NGINX JavaScript (njs) で新たに発見された脆弱性 CVE-2026-8711 により、未認証のリモート攻撃者がヒープバッファ・オーバーフローを引き起こし、サービス拒否 (DoS) を発生させる可能性がある。さらに特定の条件下では、NGINX ワーカー・プロセスにおけるリモート・コード実行が可能となる。この脆弱性は、NGINX JavaScript の ngx.fetch() 操作において、js_fetch_proxy ディレクティブがクライアント制御変数を処理する際の不備に起因する。

この問題は、ngx_http_js_module モジュールに存在し、$http_x_user/$http_x_password などのクライアント制御 NGINX 変数を、js_fetch_proxy が使用して設定されている場合に発生する。ngx.fetch() を呼び出す NJS 関数を location が実行する際に、細工された HTTP リクエストを送信する攻撃者は、NGINX ワーカー・プロセス内においてヒープバッファ・オーバーフローを引き起こすことが可能になる。

NGINX バッファ・オーバーフローの脆弱性

この脆弱性は CWE-122 (ヒープバッファ・オーバーフロー) に分類され、F5 における NGINX Plus/NGINX OSS 向け内部 ID 160 として管理されている。この欠陥は、主にワーカー・プロセスのクラッシュ/自動再起動を引き起こし、NGINX データプレーンにおいて事実上の DoS 状態を発生させる。

Address Space Layout Randomization (ASLR) が無効化されているシステムや、不適切に設定されているシステムでは、このオーバーフローを悪用する攻撃者により、ワーカー・コンテキスト内で任意のコード実行に至る恐れがある。この脆弱性は、NGINX JavaScript (njs) バージョン 0.9.4 〜 0.9.8 に影響し、修正は njs 0.9.9 で導入されている。

影響を受けるコンポーネントは、js_content や js_fetch_proxy などの NJS ベースの HTTP 処理ディレクティブを公開している、ngx_http_js_module モジュールである。

典型的に脆弱なパターンは、js_fetch_proxy がクライアントから提供されたヘッダー (例:$http_x_user と $http_x_password) を使用してプロキシ URL をコンフィグし、その URL を使って ngx.fetch() を呼び出し、js_content が NJS 関数 (例:main.fetcher) を指す構成である。

この構成では、ヘッダ値を操作する攻撃者が、NGINX ワーカー内のヒープ・メモリを破壊し、クラッシュを繰り返して引き起こす可能性がある。

F5 はアドバイザリ K000161307 において、この問題はデータ・プレーンに限定され、コントロール・プレーンには影響しないと説明している。また、BIG-IP/BIG-IQ/BIG-IP Next/F5OS/F5 Distributed Cloud などについては、評価対象バージョンにおいて CVE-2026-8711 の影響を受けないと報告している。

影響を受ける njs バージョンを使用している管理者に強く推奨されるのは、NGINX JavaScript 0.9.9 以降へと直ちにアップグレードすることだ。

迅速なアップグレードが不可能な運用担当者は、クライアント制御変数を使用する js_fetch_proxy の利用状況を確認し、該当する設定の修正または削除を実施する必要がある。さらに、すべての NGINX ホストで ASLR を有効化し、コード実行の試行を困難にすべきである。