2026 年 7 月 15 日、nginx は 1.30.4(stable)と 1.31.3(mainline)をリリースし、CVSS 9.2 のヒープバッファオーバーフロー CVE-2026-42533 を修正しました。攻撃に認証は一切不要で、細工した HTTP リクエストだけで発火します。既定のビルドではワーカープロセスがクラッシュして再起動する(サービス拒否)結果になり、ASLR が無効化されている、あるいは回避可能な環境ではリモートコード実行に発展しうります。

発火条件:map + 正規表現 + キャプチャグループ

原因は HTTP パーサーではなく、nginx の2 パスのスクリプト評価にあります。長さを計算するパスと実際に値を書き込むパスが、同一の PCRE キャプチャ状態を共有しています。正規表現を含む map ディレクティブが、同じキャプチャグループ(例えば $1)への 2 回の参照の間で評価されると、その共有状態が静かに上書きされ、2 つのパスがバッファサイズについて食い違い、領域外書き込みが発生します。

つまり、すべての nginx が攻撃可能なわけではないものの、影響範囲は極めて広いということです。0.9.6 から 1.30.3(stable)/1.31.2(mainline)まで、2011 年以降に出荷されたほとんどのビルドが該当します。商用版では NGINX Plus R33〜R36 が影響を受け(R36 P7 で修正)、37.0.0.1〜37.0.2.1 は 37.0.3.1 で修正されています。

なぜ今すぐ対応すべきか

発見者はパッチ公開後、管理者に更新の猶予を与えるため完全な解説と PoC を意図的に 21 日間伏せました。その猶予はすでに終わっています。同じ年の別の事例が速度を物語ります。2026 年 5 月に修正された CVE-2026-42945(ngx_http_rewrite_module のヒープオーバーフロー、通称「Nginx Rift」)は、修正から約 1 週間で実際の攻撃に使われ、当時インターネットに露出した nginx のうち約 570 万台が影響を受けうるバージョンで稼働していたと推定されています。半年で同種の不具合が 2 件——「一度入れたら触らない」Web サーバーが現実のリスクであることの証明です。

3 ステップの自己点検

  • バージョンを見る。ただし nginx -v だけを信じない:Debian や Ubuntu は古いバージョン番号のままセキュリティ修正をバックポートします。1.24.0 と表示されていても修正済みのことがあります。ディストリビューションのパッケージなら apt policy nginx のパッケージリビジョンを確認し、apt changelog nginx で当該 CVE の記載を探してください。公式リポジトリや自前ビルドの場合のみ、1.30.4 / 1.31.3 と直接比較します。
  • 設定に正規表現つきの map がないか調べるgrep -rn "map " /etc/nginx/ を実行し、~ で始まるマッチ項目と、同一リクエスト経路で $1 のようなキャプチャグループを繰り返し参照している箇所に注目します。この組み合わせがなければ露出は大幅に小さくなります。
  • ワーカーが静かに再起動していないか確認するgrep -i "worker process.*exited on signal" /var/log/nginx/error.log。signal 11 での終了が繰り返されるのが典型的な兆候で、利用者側からは「たまに 502 が出る」だけに見えるため、回線の不調として片付けられがちです。

更新の手順

ディストリビューションのパッケージ:sudo apt update && sudo apt install --only-upgrade nginx のあと sudo nginx -t && sudo systemctl reload nginx。公式リポジトリや自前ビルドの場合は 1.30.4 / 1.31.3 以降へ更新し、nginx -t で確認してから reload します。reload は確立済みの接続を切りませんので、メンテナンス枠は不要です。なお同じリリースで CVE-2026-60005(ngx_http_slice_module のメモリ露出)と CVE-2026-56434(ngx_http_ssi_module の解放後使用)も修正されており、1 回の更新で 3 件が片付きます。

「自分でパッチを当てられる」ことを選定条件にする

この種の勧告にどれだけ速く動けるかは、root 権限があるか、reload のタイミングを自分で決められるかで決まります。共有ホスティングでは事業者のスケジュール待ちで、完全な error.log すら読めないことが普通です。自分の VPS なら、勧告を見てから reload まで 10 分で足ります。SharkCloud の日本・シンガポール・香港・米国ノードはいずれも独立したインスタンスで、OS と Web サーバーのバージョンはあなたの管理下にあります。次のメンテナンス枠を待つのではなく、勧告が出た当日に対応できます。