NGINXユーザーは、F5が新しい脆弱性を公開した後、重大なセキュリティ上の問題に直面しています。この脆弱性はCVE-2026-9256として追跡され、広く使用されているngx_http_rewrite_moduleに影響を与えています。
「Nginx-poolslip」と名付けられたこの欠陥により、攻撃者はサービス拒否(DoS)条件をトリガーし、特定の条件下ではリモートコード実行を実現できます。
Nginx-poolslip脆弱性
この問題は、書き換えディレクティブ内のPCRE(Perl互換正規表現)のキャプチャグループの重複処理が不適切なことに起因しています。
設定が^/((.*))$のような曖昧な正規表現パターンを使用し、$1$2のような複数のバックリファレンスと組み合わせられると、メモリ破損が発生します。
これにより、NGINXワーカープロセス内でヒープベースのバッファオーバーフロー(CWE-122)が発生します。攻撃者は、認証を必要とせずに特別に細工されたHTTPリクエストを送信することで、この欠陥を悪用できます。
- サービス拒否(DoS)ワーカープロセスのクラッシュと再起動による
- 潜在的なリモートコード実行、特にASLRなどの保護が無効化または回避されている場合
- 高トラフィック本番環境でのサービスの不安定性
脆弱性はデータプレーンのみに影響し、コントロールプレーンを公開しませんが、その遠隔悪用可能性により、インターネットに面したシステムにとって深刻なリスクとなります。
この脆弱性にはCVSS v3.1スコア8.1(高)およびCVSS v4.0スコア9.2(致命的)が割り当てられており、実世界の展開における潜在的な重大性を反映しています。
影響を受けるバージョン
この欠陥はNGINX Open SourceとNGINX Plusの両方の導入に影響します:
- NGINX Open Source: バージョン1.0.0から1.30.1
- 修正: 1.30.2および1.31.1
- NGINX Plus: バージョン37.0.0
- 修正: 37.0.1.1
NGINX Ingress Controller、NGINX App Protect、NGINX Gateway Fabricを含む複数のNGINXベースの製品も、共有の基本コンポーネントの影響を受けています。
注目すべきことに、BIG-IP、BIG-IQ、F5 Distributed CloudサービスなどのF5製品は影響を受けません。
脆弱性は、書き換えルールが名前のない重複するキャプチャグループを使用する場合にトリガーされます。リクエスト処理中、不適切なメモリ処理によりヒープ上での範囲外書き込みが発生します。
脆弱な設定の例:
- rewrite ^/users/([0-9]+)/profile/(.*)$ /profile.php?id=$1&tab=$2 last;
名前付きキャプチャを使用したセキュアな代替案:
- rewrite ^/users/(?<user_id>[0-9]+)/profile/(?<section>.*)$ /profile.php?id=$user_id&tab=$section last;
この変更により曖昧さが排除され、安全でないメモリ操作が防止されます。
対策と推奨事項
組織は以下を強く推奨されています:
- すぐにパッチ済みバージョンにアップグレードする
- 書き換えルールの安全でない正規表現パターンを監査する
- 名前のないキャプチャグループを名前付きキャプチャに置き換える
- 可能な限りASLRなどの悪用軽減策を有効にする
- 異常なリクエストパターンまたは繰り返されるワーカークラッシュのログを監視する
脆弱性は研究者Mufeed VH(Winfunc Research)、Nebula Security、およびVexera AIによって責任を持って開示されました。
Webインフラストラクチャでのngxの広範な使用を考えると、潜在的な野生での悪用を防ぐためには、迅速なパッチ適用と設定のレビューが不可欠です。
翻訳元: https://gbhackers.com/nginx-poolslip-flaw-exposes-servers/