CVE-2026-42533 に関する防御的な調査メモ。NGINX のリクエスト処理におけるヒープバッファオーバーフローで、map ディレクティブの正規表現キャプチャと特定の変数評価パターンに関連しています。
平易に言うと、NGINX は Web サーバーおよびリバースプロキシソフトウェアです。Web サイトや API の前面に配置され、Web リクエストを受け取ってどこに送るかを決定します。map ルールは NGINX の設定機能で、「このリクエスト値が X に一致したら、この変数を Y に設定する」というものです。正規表現キャプチャとは、パターンマッチから抽出されたテキストの断片です。
この CVE が重要なのは、一部の古い NGINX バージョンが特定の種類の map と変数の組み合わせパターンを誤って処理する可能性があるためです。それはすべての NGINX サーバーが影響を受けるという意味ではありません。バージョンも重要ですが、実際に適用されている設定も重要です。
このプロジェクトは意図的に安全な内容です。エクスプロイトトラフィック、クラッシュペイロード、本番環境へのプロービングは含まれません。目的は、私がどのように露出をトリアージするかを示し、リスクを説明し、防御者に再現可能な検証パスを提供することです。

NGINX はこの問題を主要なセキュリティアドバイザリとして公開しています。影響を受けるバージョンは 0.9.6-1.31.2、修正済みバージョンは 1.30.4+ と 1.31.3+ です。NGINX のチェンジログには、map ディレクティブが正規表現マッチングを使用し、その map の影響を受けるキャプチャの後に map 変数が文字列式に含まれる場合に、ワーカープロセスでヒープバッファオーバーフローが発生すると記載されています。
NVD には F5 の説明が記録されています。認証されていない攻撃者が細工した HTTP リクエストでこの問題を引き起こす可能性がありますが、それは設定と実行時の条件が揃った場合に限られます。想定される直接的な影響は NGINX ワーカーの再起動とサービス拒否であり、ASLR が無効化または回避された場合にはコード実行の可能性もあります。
防御者は、NGINX デプロイメントを露出と判断する前に、4 つの質問に答えるべきです。簡単に言うと、まずバージョンを確認し、次にリスクのある設定パターンが実際に存在するかどうかを確認します。
map を正規表現エントリとともに使用していますか?no buffer space in script copy がログに表示されていますか?これらの用語に馴染みがない場合のために説明すると、ワーカーとはリクエストを処理する NGINX プロセスです。クラッシュループや再起動シグナルは、プロセスが失敗して再起動している可能性があることを意味します。ディストリビューションのバックポートとは、Linux ベンダーが古いバージョン番号のまま、新しいアップストリームリリースに変更せずにパッチを適用することがあるという意味です。
flowchart LR
advisory["Read advisory and changelog"] --> version["Check NGINX version"]
version --> config["Review active config"]
config --> scanner["Run safe map-pattern scanner"]
scanner --> validate["Validate fixed build or vendor patch"]
validate --> hunt["Hunt restart and diagnostic signals"]
hunt --> remediate["Patch, reload, and document"]
scripts/audit_nginx_map_risk.py
NGINX 設定ファイル用の防御的なヒューリスティックスキャナーです。正規表現の map ブロック、キャプチャ、およびキャプチャと map の出力を参照する後続の文字列式を探します。サーバーが悪用可能であることを証明するものではなく、人間によるレビューに値する設定を見つけ出します。
scripts/render_demo_gif.py
実際のスキャナー出力から README の小さなデモ GIF を再生成します。
detections/splunk_nginx_cve_2026_42533.spl
バージョンインベントリ、クラッシュ/再起動の症状、パッチ適用後の診断文字列を検索する Splunk 検索です。
detections/defender_hunting_notes.kql
NGINX のログとプロセスアクティビティが収集される Linux ホスト向けの Microsoft Defender ハンティングノートです。
detections/sigma_nginx_worker_restart_symptoms.yml
NGINX ワーカーの再起動またはクラッシュの症状に関する Sigma ハンティングルールです。レビューのための手がかりであり、悪用の証明ではありません。
samples/nginx_map_patterns.conf
リスクパターンを説明するための安全な概略的な設定例です。これらはエクスプロイトペイロードではありません。
SECURITY.md
リポジトリのスコープに関する注記です。このプロジェクトが明確に防御的であり、レビューしても安全であることを示しています。
lab/windows-quickstart.ps1
Windows 対応のエビデンスランナーで、スキャナーを実行して出力を evidence/ の下に保存します。
現在のローカル検証は evidence/ に保存されています。Windows クイックスタートは、同梱のサンプル設定に対してスキャナーを実行し、トランスクリプトを保存します。Windows NGINX 検証は、公式の修正済み NGINX ビルドをダウンロードし、nginx -t でラボ設定を確認し、スキャナーを実行します。Kali VM 検証は、使い捨ての Kali VMware ゲスト内で同じスキャナーを実行します。これにより、このリポジトリが Windows と Linux の両方で実行・レビュー可能であり、プロジェクトが防御的な境界内に保たれていることが証明されます。
powershell -ExecutionPolicy Bypass -File .\lab\windows-quickstart.ps1
powershell -ExecutionPolicy Bypass -File .\lab\windows-nginx-validation.ps1
python .\scripts\self_check.py
map ブロックを検索します。1.30.4+ または 1.31.3+、あるいは該当する NGINX Plus の修正版リリースにパッチを適用します。no buffer space in script copy を監視します。lab/windows-nginx-validation.ps1
公式の修正済み NGINX for Windows ビルドをダウンロードし、nginx -t でローカルのラボ設定を検証し、スキャナーを実行してエビデンスを保存します。
lab/vmware-lab-notes.md
後でスクリーンショットベースのウォークスルーが必要な場合に備えた、使い捨て Linux VM 向けの任意の詳細ラボ手順です。