Fortinet FortiWebに存在する重大なSQLインジェクション脆弱性に対する概念実証エクスプロイトが公開されており、脆弱なサーバーで認証前のリモートコード実行が可能となっています。
FortiWebはウェブアプリケーションファイアウォール(WAF)であり、ウェブアプリケーションを悪意のあるHTTPトラフィックや脅威から保護するために使用されます。
FortiWebのこの脆弱性は9.8/10の深刻度スコアが付けられており、CVE-2025-25257として追跡されています。Fortinetは先週、FortiWeb 7.6.4、7.4.8、7.2.11、7.0.11およびそれ以降のバージョンでこの問題を修正しました。
「FortiWebにおけるSQLコマンドで使用される特殊要素の不適切な無害化(『SQLインジェクション』)の脆弱性[CWE-89]により、認証されていない攻撃者が細工したHTTPまたはHTTPSリクエストを通じて、不正なSQLコードやコマンドを実行できる可能性があります」とFortinetのアドバイザリには記載されています。
この脆弱性はGMOサイバーセキュリティの河根健太郎氏によって発見され、同氏は先月、Cisco ISEの静的ハードコードパスワード脆弱性も公開しています。
FortiWeb 認証前SQLiから認証前RCEへ
本日、サイバーセキュリティ企業WatchTowrと、「faulty *ptrrr」として知られるセキュリティ研究者が、リバースシェルやウェブシェルを開く技術的な解説および概念実証エクスプロイトを公開しました。
この脆弱性は、FortiWebのFabric Connectorに存在します。Fabric Connectorは、Fortinet製品間で認証やポリシーデータを同期するソフトウェアです。
このソフトウェアには、get_fabric_user_by_token()
関数に認証不要のSQLインジェクション脆弱性があり、以下のコードでMySQLクエリが発行されています:
snprintf(s, 0x400u, "select id from fabric_user.user_table where token='%s'", a1);
このコードは、HTTPリクエストヘッダーで送信されるベアラートークンを適切にサニタイズしておらず、攻撃者がヘッダー内にカスタムSQLを注入してSQLインジェクションを実現できるようになっていました。
攻撃者は、/api/fabric/device/statusエンドポイントへのHTTPリクエストで、AuthorizationヘッダーにSQLを注入(例:Bearer AAAAAA'or'1'='1
)することで、認証チェックを回避できます。
研究者らは、SQLインジェクションを利用してMySQLのSELECT … INTO OUTFILEクエリを実行し、デバイス上に任意のファイルを作成することで、SQLインジェクションをリモートコード実行にエスカレートすることに成功しました。これにより、site‑packagesディレクトリにPythonの.pthファイルを書き込むことができました。
.pthファイルはPythonが実行される際に自動的に読み込まれて実行されるため、研究者らはFortiWebの正規CGI Pythonスクリプト(/cgi-bin/ml‑draw.py
)を利用して、.pthファイル内の悪意あるコードを起動し、リモートコード実行を達成できることを発見しました。
エクスプロイトが既に公開され広く利用可能となっているため、管理者はサーバーの侵害を防ぐためにも、パッチの適用を最優先することが強く推奨されます。
現時点では、この脆弱性が積極的に悪用されている兆候はありませんが、近い将来状況が変わる可能性が高いです。
2025年における8つの一般的な脅威
クラウド攻撃はますます高度化していますが、攻撃者は驚くほど単純な手法でも成功しています。
Wizが数千の組織から検知したデータに基づき、本レポートではクラウドに精通した脅威アクターが用いる8つの主要な手法を明らかにします。