nginx-poolslipの脆弱性がDoSおよびリモートコード実行を可能にする

NGINX PlusおよびNGINX Open Sourceにおいて、CVE-2026-9256として追跡され、F5 ID 161(NGINX)として内部管理される深刻なヒープベースのバッファオーバーフロー脆弱性が発見されました。

この脆弱性はngx_http_rewrite_moduleに存在し、認証なしのリモート攻撃者がNGINXワーカープロセスをクラッシュさせたり、特定の条件下でリモートコード実行(RCE)を達成したりするために悪用される可能性があります。F5はこの脆弱性をHigh(CVSS v3.1: 8.1)およびCritical(CVSS v4.0: 9.2)と評価しています。

この脆弱性は、rewriteディレクティブが^/((.*))$のような異なるが重複するPCRE(Perl互換正規表現)キャプチャグループを持つ正規表現パターンを使用し、リダイレクト内の$1$2のように複数のキャプチャを参照する置換文字列と組み合わせた場合にトリガーされます。

NGINXはリクエストごとに専用のメモリプールを使用し、リクエスト終了時にそれを解放します。このプール内で、NGINXはクリーンアップハンドラのリンクリストを管理しています。

以前のRiftバグがバッファサイズの計算エラーを悪用していたのに対し、poolslipは異なるコードパスを通じて同一プール内の隣接するリンク構造をまたいだポインタの制御された「スリップ」をトリガーし、最終的に同じ破損を標的として、NGINXワーカープロセスにヒープバッファオーバーフロー(CWE-122)を引き起こします。

nginx-poolslipが従来のDoS脆弱性と異なる点は、完全に実証された多段階のリモートASLRバイパスにあります。研究者らはNGINX 1.31.0を実行する完全に堅牢化されたLinuxサーバーへの攻撃を示す概念実証動画を公開しました。

攻撃はまず約300の精巧に細工されたHTTPリクエストから始まり、ネットワーク越しにサーバーのメモリレイアウトを動的にマッピングしながらリモートヒープを探索します。

このリモートヒープ探索フェーズに続いて、攻撃者がNGINXのメモリプール内で制御された割り当てと解放のサイクルを調整し、ヒープベースアドレスを予測可能な位置に強制するHeap Feng Shuiフェーズが実行されます。

ベースアドレスが確認されると、NGINXコードベースの正確なアクティブメモリオフセットがリークされ、ローカルアクセスを必要とせずにASLR保護が完全に無効化されます。

メモリオフセットが確立されると、攻撃者が調整した破損プリミティブによってNGINXワーカーが埋め込まれた攻撃者制御のペイロードを実行し、インタラクティブなrootレベルのシェルアクセスが得られます。

F5は、ASLRが無効化されているか、攻撃者がバイパスできるシステムではコード実行が可能であることを確認しています。

この脆弱性はF5エコシステム全体の広範なNGINXベース製品に影響します。NGINX Plusブランチ37.xは37.0.1.1で修正済みであり、R32からR36のブランチはそれぞれR36 P5およびR32 P7で対処されています。

NGINX Open Sourceバージョン1.0.0から1.30.1および1.31.0は1.30.2と1.31.1で修正済みですが、レガシーの0.xブランチバージョン0.1.17から0.9.7は修正を受けません。

Kubernetesオペレーターは、NGINX 1.27.1を実行するアーカイブ済みのkubernetes/ingress-nginxリポジトリがCVE-2026-42945およびCVE-2026-9256の両方に対して永続的に脆弱であり、アップストリームの修正が提供されないことにも注意が必要です。

F5はrewrite定義において、名前のないPCREキャプチャグループを名前付きキャプチャに置き換えることを推奨しています。例えば、以下を置き換えてください:

この設定変更により、オーバーフローをトリガーする重複キャプチャの条件が解消されます。

F5は、この脆弱性を発見し協調的な開示プロセスを通じて責任ある報告を行ったWinfunc ResearchのMufeed VH、Nebula Security(@nebusecurity)、およびVexera AIの功績を認めています。

影響を受けるNGINX製品を運用している組織は、利用可能なパッチを直ちに適用し、すぐにパッチを適用できない構成については名前付きキャプチャによる緩和策を実施してください。

翻訳元: https://cyberpress.org/nginx-poolslip-flaw/

ソース: cyberpress.org