Critical FortiClient SQL Injection Vulnerability Enables Arbitrary Database Access
2026/03/18 CyberSecurityNews — Fortinet の FortiClient Endpoint Management Server (EMS) において、深刻な SQL インジェクションの脆弱性 CVE-2026-21643 (CVSS:9.1) が発見された。この脆弱性を悪用する未認証の攻撃者は、任意の SQL コマンドを実行し、機密データベース情報へアクセスできる。なお、この脆弱性が影響を及ぼす範囲は、マルチテナント・モードが有効化された FortiClient EMS バージョン 7.4.4 である。

この脆弱性の原因は、バージョン 7.4.4 におけるミドルウェアの大規模リファクタリングにある。その際に、データベース接続およびテナント・ルーティングの処理方法に変更が加えられた。この更新により、データベース接続処理において、HTTP の Site ヘッダが PostgreSQL の search_path クエリへ直接受け渡されるという欠陥が紛れ込んだ。
このアプリケーションのミドルウェアは、ヘッダに対する検証/サニタイズを行わないため、攻撃者はフォーマット文字列を回避し、任意の SQL クエリを実行できる。さらに、この脆弱なミドルウェアが認証処理前に実行されるため、攻撃において認証情報は不要となる。つまり、攻撃者は、HTTPS 経由で細工されたリクエストを送信するだけでよい。
FortiClient SQL インジェクション脆弱性の詳細
Bishop Fox の研究者が特定したのは、公開されている “/api/v1/init_consts” エンドポイントが最も実用的な攻撃経路になることだ。攻撃者は、このエンドポイントを突くことで、マルチテナント・フラグの有効状態を確認できる。そして、有効化されている場合には、Site ヘッダを介して SQL ペイロードの注入が可能になる。
このエンドポイントには、レート制限やブルートフォース防止機構が存在しない。さらに、PostgreSQL のエラーメッセージを HTTP レスポンスとして、そのまま返す設計となっている。この設計を悪用する攻撃者は、エラーベースの手法で単一リクエストから高速にデータ抽出を実行できる。つまり、時間を要するインジェクションを用いる必要はない。
攻撃に成功した攻撃者により、管理データベースは完全に侵害される。Fortinet 仮想マシン上のデータベース・ユーザーは、PostgreSQL のスーパー・ユーザー権限を用いるため、基盤 OS 上でのリモートコード実行が可能になる。それに加えて、攻撃者が可能にする悪意のアクションには、管理者パスワードの窃取/デジタル証明書の抽出/管理対象デバイスの完全なインベントリ閲覧などがある。
この権限を悪用する攻撃者は、セキュリティ・ポリシーを改変し、組織全体のエンドポイントへ悪意あるコンフィグを配布できる。このような手法は、ネットワーク・エッジおよび管理のアプライアンスを標的とする、近年の攻撃トレンドと一致する。
侵害指標 (IOC)
以下は侵害の兆候である。
- “/api/v1/auth/signin” または “/api/v1/init_consts” における、異常に長いレスポンス・タイム (5〜20秒以上) (Apache アクセスログ)。
- “/api/v1/init_consts” に対する、単一 IP からの HTTP 500 レスポンスの繰り返し。
- PostgreSQL ログの search_path クエリ内における、シングルクォート/セミコロン/SELECT などの SQL キーワード。
対策
すでに Fortinet は、バージョン 7.4.5 をリリースし、この問題に対処している。この修正では、フォーマット文字列処理を廃止し、パラメータ化された識別子処理と安全な入力エスケープが導入されている。
FortiClient EMS 7.4.4 を使用している組織にとって必要なことは、バージョン 7.4.5 へと速やかにアップグレードすることだ。
迅速なパッチ適用が困難なユーザーに対して Bishop Fox が推奨するのは、マルチテナントの Sites 機能を無効化することだ。これにより脆弱性のあるコードパス実行を防止できる。さらに、EMS 管理インターフェイスへの Web アクセスを、信頼された内部ネットワークのみに制限する必要がある。
Fortinet の FortiClient EMS における、深刻な脆弱性 CVE-2026-21643 について解説する記事です。この問題の原因は、 バージョン 7.4.4 で行われた大規模なプログラム修正の際に、 HTTP ヘッダに含まれる入力値の検証処理が漏れてしまったことにあります。 具体的には、 本来はテナントを識別するための Site ヘッダの内容が、 データベースへの命令文 (SQL) に、そのまま組み込まれてしまうという欠陥が生じました。
この脆弱性は、 ログイン前の認証が不要な段階で悪用できるため、きわめて危険なものとなります。 攻撃者は特殊なリクエストを送るだけで、 データベース内の情報を参照し、管理サーバー自体を改竄する権限を得る場合もあります。ご利用のチームは、ご注意ください。よろしければ、FortiClient での検索結果も、ご参照ください。
You must be logged in to post a comment.