18年前のNGINX脆弱性、DoSおよび潜在的なRCEのリスクを露呈
約20年間NGINXに潜んでいた重大な脆弱性が発見され、サービス拒否(DoS)攻撃や、特定の条件下ではリモートコード実行(RCE)のリスクをもたらしています。CVE-2026-42945として追跡されているこの欠陥は、セキュアなソフトウェアエコシステムの維持における継続的な課題を浮き彫りにしています。

自律スキャンシステムを使用して発見された、オープンソースWebサーバーNGINXの18年前の脆弱性は、サービス拒否、および特定の条件下でのリモートコード実行に悪用される可能性があります。
この脆弱性はCVE-2026-42945として追跡されており、Common Vulnerability Scoring System(CVSS)の最新バージョンに基づき、9.2という重大な深刻度評価を受けています。
AIネイティブセキュリティ企業DepthFirst AIの研究者たちは、同じ6時間のコードスキャンセッションで、さらに3つのメモリ破損セキュリティ問題を検出しました。
NGINXは、Webサーバーおよびリバースプロキシプラットフォームとして広く利用されており、トップランクのWebサイトの3分の1を支えています。受信ネットワークトラフィックを複数のバックエンドサーバーに分散させることで効率的に負荷を分散し、コンテンツをキャッシュすることでロード時間を短縮できます。
アメリカのテクノロジー企業F5が所有・保守するこのWebサーバーは、クラウドプロバイダー、SaaS企業、銀行、メディアプラットフォーム、eコマースサイト、およびKubernetesクラスターで使用されています。
CVE-2026-42945は、`ngx_http_rewrite_module`におけるヒープバッファオーバーフローであり、NGINXバージョン0.6.27から1.30.0に影響を与え、プロジェクトのコードに約18年間存在していました。
DepthFirstによると、この脆弱性は、APIゲートウェイやリバースプロキシの設定で一般的であるとされる、「rewrite」と「set」ディレクティブの両方をNGINXの設定で使用する場合にトリガーされる可能性があります。
この欠陥は、リライトを2つのパスで処理するNGINXの内部スクリプトエンジンの状態処理の一貫性のなさから生じています。1つ目のパスで割り当てるメモリ量を計算し、2つ目のパスで実際のデータをコピーします。
「rewrite」に「?」が含まれるリライトの後、「is_args」フラグが設定されたままになり、NGINXはエスケープされていないURIの長さを使用してバッファサイズを計算しますが、後で「+」や「&」のようなエスケープされた大きなデータを書き込むため、ヒープバッファオーバーフローが発生します。
研究者たちは、特別に細工されたHTTPリクエストを通じて、認証なしでコード実行が可能であることを実証しました。このリクエストは、隣接するNGINXメモリプール構造を破損させ、クリーンアップハンドラーポインタを上書きし、POSTリクエストボディを介して偽の構造をメモリにスプレーし、プールクリーンアップ中にNGINXに`system()`を実行させます。
ただし、リモートコード実行は、メモリベースの攻撃に対する保護であるアドレス空間配置のランダム化(ASLR)が無効になっているシステムで達成されました。この防御策はデフォルトで有効になっていますが、組み込みシステムや分析に使用される仮想マシンなど、一部の環境ではパフォーマンスを向上させるために無効にすることができます。
DepthFirstは、NGINXのマルチプロセスアーキテクチャにより、ワーカープロセスがマスタープロセスからほぼ同一のメモリレイアウトを継承するため、エクスプロイトが容易になると指摘しています。これにより、信頼性の高いヒープ操作と、ワーカーがクラッシュした場合の再試行が可能になります。
「私たちのエクスプロイトが失敗してワーカーがクラッシュした場合、マスタープロセスはまったく同じメモリレイアウトを持つ新しいワーカーを単純に起動します」と研究者たちは説明しています。
「これにより、メモリレイアウトが変更されることを心配することなく、成功するまで安全に複数回試すことができます。」
「理論的には、この設計を利用して、バイトごとにポインタを段階的に上書きすることでASLR(アドレス空間配置のランダム化)をリークできる可能性があります。」
DepthFirstによって発見された他の3つの欠陥は、中程度の深刻度評価を受けました。
* CVE-2026-42946 — SCGI/UWSGIモジュールにおける過剰なメモリ割り当て。約1TBの割り当てによりワーカーをクラッシュさせる可能性があります(高深刻度)。
* CVE-2026-40701 — 非同期OCSP DNS解決処理におけるuse-after-free(中深刻度)。
* CVE-2026-42934 — オフバイワンのUTF-8解析バグにより、境界外読み取りが発生(中深刻度)。
### 影響と修正
脆弱性は2026年4月18日に発見され、4月21日にベンダーに報告されました。
F5の昨日公開されたセキュリティアドバイザリによると、これらの欠陥は以下のNGINXビルドに影響します。
* NGINX Open Sourceバージョン0.6.27から1.30.0
* NGINX Plus R32からR36
* NGINX Instance Manager 2.16.0から2.21.1
* F5 WAF for NGINX 5.9.0から5.12.1
* NGINX App Protect WAF 4.9.0から4.16.0および5.1.0から5.8.0
* F5 DoS for NGINX 4.8.0
* NGINX App Protect DoS 4.3.0から4.7.0
* NGINX Gateway Fabric 1.3.0から1.6.2および2.0.0から2.5.1
* NGINX Ingress Controller 3.5.0から3.7.2、4.0.0から4.0.1、および5.0.0から5.4.1
修正は、NGINX Open Source 1.31.0および1.30.1、NGINX Plus R36 P4、およびNGINX Plus R32 P6で提供されました。
アップグレードできないユーザーに対して、F5は、脆弱性のある「rewrite」ルール内の名前のないPCREキャプチャグループ($1、$2など)を名前付きキャプチャに置き換えることを推奨しています。これにより、主なエクスプロイトの前提条件が排除されます。
### 実世界でのエクスプロイト可能性
一部のセキュリティ研究者は、CVE-2026-42945を取り巻く実世界でのエクスプロイト可能性の主張に反論しており、DepthFirstの概念実証(PoC)は、デフォルトのデプロイメントでは一般的ではない非常に特定の条件に依存していると主張しています。
研究者のKevin Beaumont氏は、エクスプロイトには特定の書き換えパターンを使用した脆弱なNGINX構成が必要であり、攻撃者は影響を受けるエンドポイントを知っているか発見する必要があり、公開されたRCE PoCはASLRが無効な状態でテストされたと指摘しました。
Beaumont氏は、研究者のエクスプロイトは意図的に脆弱なセットアップに対して構築されたものであり、堅牢化された実世界のシステムに対して信頼性の高いコード実行を示すものではないと強調しました。

AlmaLinuxは、独立して欠陥を再現した後、アドバイザリで同様の評価を表明しました。
Linuxディストリビューションのメンテナーは、細工されたリクエストを通じてNGINXワーカープロセスをクラッシュさせることは容易で信頼性が高く、サービス拒否攻撃が現実的であることを確認しました。
しかし、彼らは、ASLRが有効なシステムでヒープオーバーフローを信頼性の高いリモートコード実行に変換することは「容易ではない」と述べ、Depthfirstの作業から汎用的で信頼性の高いエクスプロイトが出現するとは予想していないとしました。
同時に、AlmaLinuxは「容易ではない」ことが不可能を意味するわけではなく、DoSの可能性だけでもこの問題を緊急として扱うには十分であると警告しました。
## 検証のギャップ:自動ペネトレーションテストは1つの質問に答える。あなたには6つ必要だ。
自動ペネトレーションテストツールは真の価値を提供しますが、それらは1つの質問に答えるために構築されました:攻撃者はネットワークを通過できるか?それらは、あなたの制御が脅威をブロックするか、検出ルールが発火するか、クラウド構成が保持されるかをテストするために構築されたものではありません。
このガイドでは、実際に検証する必要がある6つのサーフェスについて説明します。
[今すぐダウンロード](https://hubs.li/Q048zztN0)