F5 が所有する NGINX は、世界中でよく使用されているリバース プロキシ サーバーです。 NGINX は、グローバル インターネットの重要なインフラストラクチャでもあります。今回、あるセキュリティ調査会社が、ソフトウェアに高リスクのセキュリティ脆弱性があることを明らかにしました。この脆弱性には CVE-2026-42945 の番号が付けられています。 NGINX スクリプト エンジンには、18 年前から存在するヒープ バッファ オーバーフローの問題があります。

攻撃者は、慎重に作成した HTTP リクエストを公開された NGINX サーバーに送信するだけで、リモートからサーバーを乗っ取ることができます。 NGINX は、コアとなるグローバル Web サイトのサーバーおよびリバース プロキシ分野の 30% 近くを占めているため、この脆弱性は多数のインターネット サービスに影響を与える可能性があります。

NGINX オントロジーと複数の派生製品に影響します。

この脆弱性は、2008 年にリリースされた NGINX バージョン 0.6.27 で最初に発生しました。その後、この脆弱性は長らく発見されず、現在に至るまで潜んでいます。この脆弱性はNGINXバージョン0.6.27~1.30.0に影響を与えるほか、F5が商用顧客に提供するさまざまなNGINX派生製品にも影響を与える。影響を受ける派生製品には、NGINX WAF、F5 WAF、NGINX Gateway Fabric、NGINX Ingress Controllerなどが含まれますが、これらに限定されません。

脆弱性の発生条件は非常に隠されています。次の 2 つの命令が NGINX 構成ファイルに同時に表示されると、脆弱性が有効になります。

rewrite ^/api/(.*)$ /internal?migrated=true;  # 重写规则末尾带 “?” set $original_endpoint $1;                     # 使用正则捕获组

この脆弱性を発見した研究チームは、脆弱性の根本原因はngx_http_rewrite_moduleのスクリプトエンジン(ngx_http_script.c)にあると指摘しました。書き換え命令に疑問符が含まれている場合、永続的な is_args フラグが設定されますが、その後の設定命令の長さ計算フェーズでは、エンジンは新しいクリアされたサブエンジンを使用するため、長さの計算中に URL エスケープ ロジックがスキップされます。

実際のコピー段階では、メイン エンジンを使用して ngx_escape_uri 関数をトリガーし、+ や & などの文字をエスケープします。バッファはエスケープされていない長さに応じて割り当てられますが、拡張されたコンテンツが書き込まれるため、最終的には制御可能なヒープ バッファ オーバーフローが発生します。

F5 は、以下を修正するために NGINX バージョン 1.31.0/1.30.1 をリリースしました。

脆弱性の通知を受け取った後、F5 はすぐに脆弱性を確認しました。 F5 が修正を準備した後、研究者は脆弱性を公開しました。したがって、現在 NGINX とその派生製品を使用しているユーザーは、影響を受けない最新バージョンにアップグレードする必要があります。 NGINX のオープンソース バージョンは、バージョン 1.30.1 または 1.31.0 にアップグレードする必要があります。バージョン 0.6.27 ~ 1.30.0 など、他の古いバージョンもこの脆弱性の影響を受けます。

他の派生製品のバージョン情報については、F5 セキュリティ情報を参照してください: https://my.f5.com/manage/s/article/K000160932