NGINXに深刻な脆弱性「CVE-2026-42533」が判明、クラッシュや遠隔コード実行の恐れ
要点
-
NGINXのワーカープロセスを強制終了させたり、特定の構成下で遠隔から任意のプログラムを実行されたりする深刻な脆弱性が判明した。
-
影響を受けるのは、2011年以降にリリースされたバージョン0.9.6から1.31.2までの広範なNGINX製品である。
-
開発元のF5は修正版として「nginx 1.30.4」や「1.31.3」などを公開し、利用者に対応を呼びかけている。
-
開発元が提示した一時的な設定変更による回避策には依然として脆弱な経路が残るため、パッチの適用が唯一の完全な解決策とされる。
-
Webサーバーソフトウェア「NGINX」において、メモリを破壊し、最悪の場合にはシステムを遠隔から制御される恐れがある深刻な脆弱性が発見された。開発を主導するF5ネットワークス(以下、F5)は2026年7月15日、この脆弱性に対応する修正プログラムをリリースし、利用者に対して速やかなアップデートを呼びかけている。
脆弱性の概要と影響範囲
今回発見された脆弱性は「CVE-2026-42533」として識別されている。攻撃者が特別に細工したHTTPリクエストを送信することで、NGINXで実際にリクエスト処理を担当する「ワーカープロセス」において、動的に確保されたメモリ領域の制限を超えてデータを書き込んでしまう「ヒープバッファオーバーフロー」を引き起こすことができる。
このバグが発生すると、ワーカープロセスが強制終了または再起動し、サーバーが正常に動作しなくなる「サービス拒否(DoS)」状態に陥る。さらに、メモリ上のプログラムの配置を毎回ランダムにすることで攻撃を防ぐセキュリティ機能「ASLR」が無効であるか、またはバイパスできる環境においては、外部から任意のプログラムを送り込んで動かす「リモートコード実行(RCE)」が引き起こされる恐れがある。F5による深刻度の評価(CVSS:脆弱性の深刻度を評価する共通基準)は、最新のv4スコアで「9.2」、旧基準のv3.1でも「8.1」とされており、攻撃の難易度は「高」とされているものの、重大な脅威として分類されている。
問題が発生する仕組み
このバグは、NGINXがリクエスト受信時に設定情報から文字列を組み立てる「スクリプトエンジン」の動作に起因している。具体的には、正規表現を用いた「map」ディレクティブ(条件に応じて変数に値を割り当てる設定項目)が使用されており、その出力となる変数が、直前の正規表現マッチで得られた「キャプチャ変数」(マッチした部分文字列を格納する変数)の後ろで参照されている場合に発生する。
NGINXのスクリプトエンジンは、処理を2段階に分けて実行している。第1段階で必要なメモリの大きさを計算してバッファ(一時的にデータを格納するメモリ領域)を確保し、第2段階で実際にデータを書き込む。しかし、この2つのステップの間に「map」による正規表現の評価が実行されると、内部で共有されているキャプチャ変数の状態が上書きされてしまう。
これにより、第1段階のサイズ測定では元のキャプチャ(例:$1など)に基づいたメモリ領域が用意されるにもかかわらず、第2段階の書き込み時には上書きされた別の大きなデータが書き込まれるため、メモリ領域からはみ出してしまう。このはみ出すデータの長さや内容は、攻撃者が送信するリクエストによって完全に制御可能であるため、セキュリティ上の大きな欠陥となっている。
影響を受ける製品と長きにわたる歴史
この脆弱性は、NGINXのバージョン0.9.6から1.31.2までの広範なバージョンに影響する。これは、NGINXの「map」機能に正規表現のサポートが追加された2011年まで遡る問題であり、15年近くにわたり潜在していたことになる。
影響を受けるのは単体のNGINXコアサーバーだけではない。商用版である「NGINX Plus」のほか、F5のアドバイザリによると、「NGINX Ingress Controller」「Gateway Fabric」「App Protect WAF」「Instance Manager」といったコンテナ環境やセキュリティ対策製品も影響を受ける。ただし、記事公開の時点では、これら4つの周辺製品に対する修正済みのビルド情報は公開されていないという。
「ASLRの回避も可能」とする研究者の指摘
F5は公開したアドバイザリの中で、リモートコード実行のリスクについて「ASLRが無効であるか、またはバイパスできる場合に限る」と説明している。一般的に、現代の主要なOSではデフォルトでASLRが有効化されているため、多くの管理者にとって本脆弱性の影響は「サービス拒否(DoS)にとどまる」と受け取られかねない。
しかし、この脆弱性を個別に報告したセキュリティ研究者のスタン・ショウ(Stan Shaw)氏は、この認識に警鐘を鳴らしている。同氏の検証によれば、上書きによるメモリ破壊は逆のパターンでも発生し、確保されたメモリに対して書き込むデータが小さい場合、初期化されていないメモリデータが応答としてそのまま漏洩する。デフォルト設定のUbuntu 24.04上で動作するNGINXに対し、認証なしで1回リクエストを送信するだけで、攻撃用のコードを正確に実行するために必要なメモリのアドレス情報を特定(ASLRを回避)できたという。ショウ氏はこの検証について、10回中10回成功したとしているが、悪用を避けるため、具体的な実証コードや攻撃手法の詳細は現在のところ伏せられている。
対策と推奨されるアクション
F5は、本脆弱性の完全な解決策として、安定版の「nginx 1.30.4」、開発版(メインライン)の「nginx 1.31.3」、および商用版の「NGINX Plus 37.0.3.1」への速やかなアップデートを推奨している。
すぐにアップデートを適用できない環境に向け、F5は一時的な回避策として、設定ファイル内で問題のある正規表現による map の記述を、変数名で指定する「名前付きキャプチャ」方式に書き換えるよう案内している。しかし、ショウ氏はこの回避策にも抜け道があると指摘する。設定によっては、名前付きキャプチャを使っても別の処理ルートから同様のオーバーフローが発生することを確認したとしており、最も確実な対策はシステム自体のアップデートであると強く主張している。
なお、同氏はサーバー内の設定ファイル(nginx.confなど)をスキャンし、この脆弱性の引き金となる記述の順序が残っていないかを自動判定するプログラム「CVE-2026-42533-Config-Scanner」をGitHub上に公開している。
近年相次ぐ脆弱性報告
NGINXにおける式の評価コード周辺を標的としたヒープバッファオーバーフローの脆弱性は、ここ約2ヶ月の間に3件報告されている。先月に発表された「Rift」と呼ばれる脆弱性(CVE-2026-42945)に続く今回の発見は、サーバー管理者にとって設定の再確認とパッチ管理の徹底を求めるものとなっている。