NGINXでリモートコード実行の脆弱性が発見される、影響を受けるバージョンはこれ – GIGAZINE


セキュリティ企業のDepthFirstがウェブサーバーソフトウェア「NGINX」のソースコードを自社の解析システムに読み込ませたところ複数の問題が検出され、そのうち4件のメモリ破壊系の問題がNGINX側に確認されたとのこと。中でもリモートコード実行につながる可能性がある脆弱(ぜいじゃく)性「CVE-2026-42945」は、2008年に入り込んだとされるヒープバッファオーバーフローで「18年近く見逃されていた」と述べられています。

GitHub – DepthFirstDisclosures/Nginx-Rift: exploit for CVE-2026-42945 · GitHub
https://github.com/DepthFirstDisclosures/Nginx-Rift

NGINX Rift: Achieving NGINX Remote Code Execution via an 18-Year-Old Vulnerability | depthfirst
https://depthfirst.com/research/nginx-rift-achieving-nginx-rce-via-an-18-year-old-vulnerability

影響を受けるバージョンおよび修正済みバージョンは以下の通り。

製品影響を受けるバージョン修正済みバージョン
NGINX Open Source0.6.27 – 1.30.01.31.0, 1.30.1
NGINX PlusR32 – R36R36 P4, R35 P2, R32 P6


CVE-2026-42945が発生する条件は、NGINX設定内でrewriteディレクティブの後にrewriteディレクティブ、ifディレクティブ、setディレクティブのいずれかが続き、さらに「$1」「$2」のような名前なしPCREキャプチャグループと疑問符「?」を含む置換文字列を使っている場合です。rewriteディレクティブはアクセスされたURLを別のURLに書き換えるための設定で、setディレクティブは一時的な変数に値を入れるための設定です。たとえば「古いAPIのURLを新しいAPIのURLに移し替えつつ、元のアクセス先をログやバックエンド処理用に残す」などの用途で使われます。

技術的には、NGINX内部のスクリプトエンジンが「必要なメモリ量を計算する処理」と「実際に文字列をコピーする処理」の2段階で動いていることが問題のきっかけです。最初の計算処理ではURL中の一部文字がエスケープによって長くなる可能性が正しく反映されず、後のコピー処理でエスケープ後の長い文字列が書き込まれます。結果として確保したメモリ領域より大きなデータを書き込んでしまい、ヒープバッファオーバーフローが発生します。ヒープバッファオーバーフローとはプログラムが動作中に確保したメモリ領域の外側へデータを書き込んでしまう問題で、クラッシュや任意コード実行につながる場合があります。


CVE-2026-42945では、認証されていない攻撃者が細工したHTTPリクエストを送信することで、NGINXワーカープロセスでヒープバッファオーバーフローを起こし、プロセス再起動につながる可能性があるとされています。さらにプログラムが使うメモリ上の位置をランダム化して攻撃を成功しにくくする防御機構「Address Space Layout Randomization(ASLR)」が無効になっているシステムでは、コード実行が可能になるとのこと。

なお、脆弱性の深刻度については表記に差があります。NGINX公式のセキュリティアドバイザリではCVE-2026-42945の深刻度が「medium」とされていますが、米国政府機関NISTが運営する脆弱性情報データベース「NVD」ではCVSS 4.0の基本値として9.2、深刻度「CRITICAL」、CVSS 3.1の基本値として8.1、深刻度「HIGH」が記録されています。悪用に一定の条件が必要である一方、条件がそろうと大きな影響が出る脆弱性という扱いです。

DepthFirstはASLRが無効な環境でリモートコード実行を示す実証コードを公開しており、「rewriteおよびsetディレクティブを使用しているサーバーに対して、認証なしのリモートコード実行を可能にする」と説明されています。運用中のNGINXで影響範囲に含まれるバージョンを使っている場合、まずNGINX Open Source 1.30.1または1.31.0以降への更新を検討し、あわせて「rewriteディレクティブ、setディレクティブ、名前なしキャプチャグループ、疑問符を含む置換文字列の組み合わせが設定内に存在するか」を確認する必要があると述べられています。

この記事のタイトルとURLをコピーする

・関連記事
Claude Mythosの「脆弱性発見能力が高い」というのは誇大宣伝だとcURL開発者が指摘 – GIGAZINE

90日間の脆弱性開示ポリシーはもはや意味をなさないという指摘、AIがバグ発見とエクスプロイト開発を爆速に – GIGAZINE

MicrosoftがAIセキュリティシステム「MDASH」を構築、Windowsの脆弱性検知に活用 – GIGAZINE

Microsoft BitLockerで保護されたドライブを回復キーなしにUSBメモリ上のファイルだけでアクセスできる脆弱性が明らかに – GIGAZINE

OpenAIが攻撃者より先に脆弱性を検知・修正するセキュリティAI「Daybreak」を発表 – GIGAZINE


ソース元はコチラ

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事