FortiClient EMS 7.4.4に認証前 SQLインジェクションが可能になる脆弱性(CVE-2026-21643)-公開エンドポイント経由の悪用方法

セキュリティニュース

投稿日時: 更新日時:

FortiClient EMS 7.4.4に認証前 SQLインジェクションが可能になる脆弱性(CVE-2026-21643)-公開エンドポイント経由の悪用方法

Fortinetは2026年2月6日、FortiClient EMSにSQLインジェクションの脆弱性 CVE-2026-21643があると公表しました。Fortinetのアドバイザリでは、細工したHTTPリクエストにより、認証されていない攻撃者が不正なコードまたはコマンドを実行できるおそれがあるとされ、重要度はCriticalです。影響を受けるのはFortiClient EMS 7.4.4で、対策は7.4.5以降への更新です。FortiClient EMS 7.2系と8.0系は影響を受けないと案内されています。

その後、Bishop Foxは2026年3月9日に技術調査を公表し、Fortinetの公表内容をさらに具体化しました。同社によると、公開状態の /api/v1/init_consts エンドポイントを悪用することで、認証前にSQLインジェクションを成立させられる実用的な攻撃経路が確認されたとしています。特にマルチテナント構成では、ロックアウトなしでエラー応答を利用したデータ抽出が可能だとされ、実運用上の危険度が一段と明確になりました。

概要

今回の問題は、FortiClient EMSのマルチテナント機能で使われる Site ヘッダの扱いにあります。

Bishop Foxによると、FortiClient EMSはマルチテナント時に Site ヘッダを読み取り、PostgreSQLの search_path をテナントごとのスキーマへ切り替える設計です。

ところが7.4.4では、この値が十分に無害化されないままデータベースクエリに組み込まれ、しかもその処理が認証チェックより前に実行されるようになっていました。

Bishop Foxは、攻撃者が Site ヘッダへ細工した値を入れるだけで、バックエンドのPostgreSQLに対して任意のSQLを実行できると説明し調査では、ログインAPIだけでなく、誰でもアクセスできる /api/v1/init_consts も注入可能で、この公開エンドポイントの方が実用的な攻撃ベクトルだと結論付けています。理由は、認証不要で利用できるうえ、ロックアウト制御がなく、HTTP 500応答にPostgreSQLのエラー詳細が返るためです。

原因

Bishop Foxの解析では、直接の原因は7.4.4で行われたミドルウェアとデータベース接続層のリファクタリングです。この変更で、Site ヘッダの値を search_path に反映する処理が、パラメータ化ではなく文字列補間で組み立てられるようになり、SQL文へそのまま埋め込まれる状態になったとされています。

さらに問題を大きくしたのは、SiteMiddlewareAuthMiddleware より前に実行される点です。つまり、ログイン前のエンドポイントにアクセスした時点で、攻撃者が与えた Site ヘッダを基にデータベース接続が張られ、その段階でSQLインジェクションが成立し得る構造になっていました。Bishop Foxは、これが認証前の悪用を可能にした本質だと説明しています。

脆弱性の対象バージョン

Fortinetの公式アドバイザリでは、影響を受けるのはFortiClient EMS 7.4系のうち7.4.4のみです。7.2系および8.0系は影響を受けず、FortiEMS Cloudも対象外として扱われています。

Bishop Foxも、今回の脆弱なコードパスは7.4.4のリファクタリングで混入したもので、以前の実装には存在せず、単一サイト構成は影響を受けないと説明しています。したがって、実務上は 7.4.4 かつマルチテナント有効 の組み合わせが、最優先の確認対象になります。

対策バージョン

Fortinetが案内している対策は、FortiClient EMS 7.4.5以降への更新です。公式アドバイザリでも、7.4.4から7.4.5以上へアップグレードするよう明示されています。

Bishop Foxによると、7.4.5では問題のあった文字列補間が、適切に識別子をエスケープする形へ修正されていますので、根本対応はアップデートです。

更新がすぐに難しい場合の緩和策としては、EMS Web GUIへのHTTPSアクセスを管理ネットワークのみに制限すること、マルチテナントが不要ならSites機能を無効化すること、リバースプロキシやWAFで Site ヘッダを除去または検証することが挙げられています。

調査で判明した実用的な攻撃条件

今回の調査で特に重要なのは、/api/v1/init_consts が攻撃の起点になり得ると示された点です。Bishop Foxによると、このエンドポイントは認証不要でアクセスでき、レスポンス内の SITES_ENABLED フラグから、対象がマルチテナント構成かどうかも事前に判断できます。つまり、攻撃者は認証なしで構成情報を把握し、そのまま攻撃可否を見極められることになります。

さらに同社は、この公開エンドポイントがロックアウト制御なしで使え、SQLエラーもHTTPレスポンスに返すため、時間差だけに頼るブラインド攻撃よりも効率的にデータを抜き出せると説明しています。管理系製品でこうした公開APIが残っている場合、脆弱性の深刻度は単なるCVSS値以上に高くなりやすいことを示した事例です。

出典

Pre-Authentication SQL Injection in FortiClient EMS 7.4.4 – CVE-2026-21643