18年前の NGINX 脆弱性がリモートコード実行攻撃を可能に – PoC公開

2008年以来 NGINX のソースコードに埋め込まれていた深刻な脆弱性がようやく明るみに出たが、攻撃者は既にそれに対する実用的なエクスプロイトを持っている。

CVE-2026-42945 として追跡され、NGINX Rift というコード名が付けられた脆弱性は、CVSS v4.0 スコア 9.2 という深刻な評価を持ち、18年間完全に検出されずにいた。

CVE-2026-42945 は NGINX のngx_http_rewrite_moduleに存在するヒープバッファオーバーフローで、2008年のバージョン 0.6.27 で導入され、1.30.0 までのすべてのリリースに存在する。

注目すべきことに、このバグは人間の研究者によって発見されたのではなく、depthfirst の AI 駆動ソースコード分析システムがわずか6時間のスキャン後に自律的に特定したもので、合計4つのリモートメモリ破損問題を明らかにした。

根本的な原因は、rewrite および set ディレクティブを処理する NGINX の2パススクリプトエンジンにある。最初のパスでは、NGINX は割り当てるメモリ量を計算する。

2番目のパスでは、データをそのバッファにコピーする。致命的な欠陥:rewrite ディレクティブに疑問符が含まれている場合、メインエンジンの内部is_argsフラグが永続的に設定されるが、このフラグは長さ計算中に使用されるサブエンジンには伝播しない。

その結果、コピーフェーズは割り当てられたバッファが保持できるよりはるかに多くのデータを書き込み、攻撃者が完全に制御できるコンテンツでヒープオーバーフローを引き起こす。

NGINX のマルチプロセスアーキテクチャは、クラッシュしたワーカーを同一のヒープレイアウトで自動的に再起動するため、攻撃者はサーバーを永続的にダウンさせずにエクスプロイトを無期限に再試行できる。

研究者は、ASLR が無効なシステムで完全な RCE を達成する実用的な PoC を確認し、複数のリクエストにわたる段階的なヒープポインタ上書きを通じた ASLR バイパスも理論化した。

同じ AI 分析により、NGINX の3つのさらに確認された脆弱性が明らかになった:

この脆弱性は、NGINX Open Source 0.6.27 ~ 1.30.0、NGINX Plus R32–R36、NGINX Instance Manager 2.16.0–2.21.1、NGINX App Protect WAF 4.9.0–5.8.0、NGINX Ingress Controller 3.5.0–5.4.1 を含む、F5 および NGINX 製品の広い範囲に影響する。

F5 は2026年5月13日に公式セキュリティアドバイザリを発行した。管理者は直ちに NGINX 1.31.0 または 1.30.1 にアップグレードする必要がある。

すぐにパッチを当てることができない場合は、rewrite および set ディレクティブの組み合わせを削除または分離するために設定を監査することが、重要な暫定的な軽減策として機能する。

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

ソース: cyberpress.org