18 年前から存在する NGINX の脆弱性により、DoS や RCE が発生する可能性がある

18 年前から存在する NGINX の脆弱性により、DoS や RCE が発生する可能性がある


18 年前から存在する NGINX の脆弱性により、DoS や RCE が発生する可能性がある

自律スキャン システムを通じて発見されたオープンソース NGINX サーバーの 18 年前の欠陥は、サービス妨害に悪用され、特定の条件下ではリモートでコードが実行される可能性があります。

この脆弱性は CVE-2026-42945 として追跡され、Common Vulnerability Scoring System (CVSS) の最新バージョンに基づいて重大度 9.2 が割り当てられています。

ネイティブ AI セキュリティ企業 DepthFirst AI の研究者による同じ 6 時間のコード スキャン セッションで、さらに 3 つのメモリ破損セキュリティ問題が発見されました。

NGINX は、広く使用されている Web サーバーおよびリバース プロキシ プラットフォームであり、上位にランク付けされた Web サイトの 3 分の 1 に利用されています。受信ネットワーク トラフィックを複数のエンド サーバーに分散することで効果的に負荷分散し、コンテンツをキャッシュすることで負荷時間を短縮します。

この Web サーバーは、アメリカのテクノロジー企業 F5 によって所有および維持されており、クラウド プロバイダー、SaaS 企業、銀行、メディア プラットフォーム、電子商取引サイト、および Kubernetes クラスターによって使用されています。

CVE-2026-42945 は、NGINX バージョン 0.6.27 ~ 1.30.0 に影響を与える ngx_http_rewrite_module のヒープ バッファ オーバーフローで、約 18 年間プロジェクトのコードに存在しています。

DepthFirst によると、この脆弱性は、NGINX 構成で「rewrite」と「set」ディレクティブの両方が使用されている場合に引き起こされる可能性があり、研究者らによると、このパターンは API ゲートウェイやリバース プロキシ設定で一般的であるとのことです。

この欠陥は、NGINX の内部スクリプト エンジンでの状態処理が一貫していないことが原因で、書き込みを 2 つのパスで処理します。1 つは割り当てるメモリ量を計算するパス、もう 1 つは実際にデータをコピーするパスです。

「?」を含む書き込み後も「is_args」フラグが設定されたままになるため、NGINX はエスケープされていない URI 長を使用してバッファ サイズを計算しますが、後で「+」や「&」などのより大きなエスケープ データを書き込むため、ヒープ バッファ オーバーフローが発生します。

研究者らは、隣接する NGINX メモリ プール構造を破壊し、クリーンアップ ハンドラー ポインタを交換し、POST リクエスト本文を介してメモリに偽の構造を挿入し、プールのクリーンアップ中に NGINX に「system()」を実行させる特別に細工された HTTP リクエストを使用した認証されていないコードの実行を実証しました。

ただし、メモリベースの攻撃に対するアドレス空間レイアウトランダム化 (ASLR) 保護がオフになっているシステムでは、リモート コード実行が実現されています。この保護はデフォルトで有効ですが、組み込みシステムや分析に使用される仮想マシンなどの特定の環境ではパフォーマンスを向上させるために無効にすることができます。

DepthFirst は、ワーカー プロセスがマスター プロセスからほぼ同一のメモリ レイアウトを継承し、信頼性の高いスタック操作とワーカーがクラッシュした場合の再試行を可能にするため、NGINX のマルチプロセス アーキテクチャが悪用を容易にすると指摘しています。

研究者らは、「エクスプロイトが失敗してワーカーがクラッシュした場合、マスタープロセスはまったく同じメモリレイアウトを持つ新しいプロセスを生成するだけです」と説明している。

「これにより、ワーカーのクラッシュやメモリ レイアウトの変更を心配することなく、成功するまで安全に複数回試行できるようになります。」

「理論的には、この設計を利用して、ポインタをバイトごとに段階的に交換することで ASLR (アドレス空間割り当てのランダム化) を漏らすことができます。」

DepthFirst によって発見された他の 3 つの欠陥は、中程度の深刻度評価を受けました。

  • CVE-2026-42946 – SCGI/UWSGI モジュールでの過剰なメモリ割り当てにより、最大 1 TB の割り当てでワーカーがクラッシュする可能性があります (重大度)
  • CVE-2026-40701 – OCSP DNS 解決の非同期処理後の無料使用 (重大度中)
  • CVE-2026-42934 – UTF-8 の not-in-one 解析バグにより境界外読み取りが発生する (重大度中程度)

影響と修正

この脆弱性は 2026 年 4 月 18 日に発見され、4 月 21 日にベンダーに報告されました。

昨日公開された F5 のセキュリティ勧告によると、この欠陥は次の NGINX ビルドに影響を与えます。

  • NGINX オープンソース バージョン 0.6.27 ~ 1.30.0
  • NGINX Plus R32 ~ R36
  • NGINX インスタンス マネージャー 2.16.0 ~ 2.21.1
  • NGINX 5.9.0 ~ 5.12.1 の F5 WAF
  • NGINX App Protect WAF 4.9.0 ~ 4.16.0 および 5.1.0 ~ 5.8.0
  • NGINX 4.8.0 の F5 DoS
  • NGINX App Protect DoS 4.3.0 ~ 4.7.0
  • NGINX ゲートウェイ ファブリック 1.3.0 ~ 1.6.2 および 2.0.0 ~ 2.5.1
  • NGINX Ingress コントローラー 3.5.0 ~ 3.7.2、4.0.0 ~ 4.0.1、および 5.0.0 ~ 5.4.1

この修正は、NGINX オープンソース 1.31.0 および 1.30.1、NGINX Plus R36 P4、および NGINX Plus R32 P6 で利用可能になりました。

アップグレードできない場合、F5 は、脆弱な「書き換え」ルールを持つ名前のない PCRE キャプチャ グループ ($1、$2 など) を名前付きキャプチャに置き換えることを推奨します。これにより、主要な悪用条件が排除されます。

現実世界のユーザビリティ

一部のセキュリティ研究者は、CVE-2026-42945 を巡る現実世界のエクスプロイトの主張を押し返し、DepthFirst の概念実証はデフォルトの展開には通常存在しない非常に特殊な条件に依存していると主張しています。

研究者の Kevin Beaumont 氏は、エクスプロイトには特定の書き換えパターンを使用した脆弱な NGINX 構成が必要であり、攻撃者は影響を受けるエンドポイントを知るか発見する必要があり、公開された RCE PoC は ASLR を無効にしてテストされていると指摘しました。

ボーモント氏は、研究者のエクスプロイトは意図的に脆弱な設定に対して構築されたものであり、現実世界の強化されたシステムに対して信頼性の高いコード実行を実証するものではないと強調した。

マストドン

AlmaLinux は、独自に欠陥を再現し、同様の評価をアドバイザリーで繰り返しました。

Linux ディストリビューション管理者は、細工されたリクエストを使用して NGINX ワーカー プロセスをクラッシュさせるのは簡単かつ確実であり、サービス妨害攻撃が現実的になることを確認しました。

ただし、ASLR が有効になっているシステム上で信頼性の高いリモート コード実行のためにスタック オーバーフローを作成することは「簡単ではない」と述べ、汎用的で信頼性の高いエクスプロイトが DepthFirst の研究から出現するとは期待していないと述べています。

同時にAlmaLinuxは、「簡単ではない」ということは不可能を意味するものではなく、DoSの可能性自体がこの問題を緊急なものとして扱うのに十分であると警告した。

記事画像

人工知能は、プロセッサとオペレーティング システムのサンドボックスの両方をバイパスする 4 つのゼロデイを 1 つのエクスプロイトに連鎖させました。新しいエクスプロイトの波が来ています。

Autonomous Verification Summit (5 月 12 日と 14 日) では、コンテキスト豊富な自律検証がどのようにエクスプロイトを発見し、制御が行われていることを証明し、修復ループを閉じるかをご覧ください。

自分の場所を主張しましょう

Leave a Reply

Your email address will not be published. Required fields are marked *