新しいNGINX脆弱性がサーバーを悪意あるコード実行に晒す

NGINXは、JavaScriptモジュール内の新しい高い重大度の脆弱性を公開しました。これはリモート攻撃者がサーバーをクラッシュさせることを可能にし、特定の条件下では脆弱なシステムで任意のコードを実行できます。

F5はセキュリティアドバイザリ(K000161307)を公開し、NGINXのJavaScript(njs)モジュール内の欠陥について説明しました。特に、js_fetch_proxyディレクティブがクライアント制御のNGINX変数およびngx.fetch()呼び出しと組み合わせて使用される場合です。

この問題はCVE-2026-8711として追跡されており、ヒープベースバッファオーバーフロー(CWE-122)として分類されます。トリガーされると、バグはNGINXワーカープロセスの再起動を引き起こし、サービス拒否(DoS)条件に至ります。

Address Space Layout Randomization(ASLR)を持たないシステムでは、リモートコード実行(RCE)を許可する可能性があります。

NGINX脆弱性がサーバーを晒す

脆弱性は、js_fetch_proxyが$http_*、$arg_*、$cookie_*などのクライアント直接制御下にある変数を使用してプロキシURLを構築する場合に発生します。NGINX JavaScriptからngx.fetch()を呼び出す場所で。

攻撃者はこれらの変数を操作する細工されたHTTPリクエストを送信することでこれを悪用でき、NGINXワーカープロセス内のヒープバッファオーバーフローに至ります。

F5は、x-userおよびx-passwordなどのリクエストヘッダーがjs_fetch_proxyで使用されてプロキシURLを構築する例の構成を強調しており、ngx.fetch()を使用してJavaScript関数を呼び出すjs_contentと組み合わされると、サーバーを脆弱にします。

F5によると、これはコントロールプレーンコンポーネントに影響を与えないデータプレーンの問題です。成功した悪用により、認証されていない攻撃者がワーカープロセスを繰り返しクラッシュさせることでDoSを引き起こすことができます。

ASLRが無効な環境では、ヒープオーバーフローは任意のコード実行に利用され、リスクプロファイルを大幅に上げることができます。F5はNGINX PlusおよびNGINXオープンソース(OSS)に内部ID 160を割り当てています。

NGINXのJavaScriptバージョン0.9.4から0.9.8に対して、High(CVSS v3.1 8.1)とCritical(CVSS v4.0 9.2)と評価し、修正はnjs 0.9.9で導入されました。

F5の評価によると、ブランチ0.x、バージョン0.9.4–0.9.8のNGINX JavaScript(njs)モジュールのみがngx_http_js_moduleを介して影響を受けます。

BIG-IP、BIG-IQ、F5 Distributed Cloudサービス、F5OS、NGINX One Console、およびこのnjsの使用パターンなしのNGINXコア製品を含む他のF5およびNGINX製品は、アドバイザリで脆弱でないとリストされています。

NGINXの公式リリースノートは、njs 0.9.9がjs_fetch_proxy内のこのヒープバッファオーバーフローの修正を含むことを示しており、アドバイザリの修復ガイダンスを強化しています。

F5は、この問題に対するスタンドアロンの軽減策はないと述べており、デプロイメントが脆弱なパターンと一致する場合、NGINX JavaScriptを修正されたバージョンにアップグレードすることを推奨しています。

njs 0.9.4–0.9.8をjs_fetch_proxyおよびクライアント制御変数と共に使用する管理者は、njs 0.9.9以降に更新するか、信頼されていないリクエスト変数をjs_fetch_proxy URLに展開することを避けるための構成を変更する必要があります。ngx.fetch()を呼び出す場所で。

組織は、K000161307の評価された製品表を参照して暴露を確認し、本番環境でのアップグレード計画の前にF5のセキュリティホットフィックスおよびライフサイクルガイダンスに従うことをお勧めします。

翻訳元: https://gbhackers.com/new-nginx-vulnerability-exposes-servers/

ソース: gbhackers.com