Fortinetは、FortiClientに存在する深刻なオリジン検証の不備を公表しました。この脆弱性を悪用されると、ユーザーが攻撃者の用意したWebページにアクセスするだけで、認証なしにエンドポイント上でリモートコード実行(RCE)を許す恐れがあります。
この脆弱性は「CVE-2026-121529」として追跡されており、「Fortinet2Shell」という通称で呼ばれています。2026年11月10日に公開されました。CVSSスコアは9.6で、CWE-346(オリジン検証の不備)に分類されています。
Kevin氏が社内調査で発見しました。同氏によると、FortiPAMを有効にしたFortiClientの環境が影響を受けます。根本的な原因は、クロスオリジンリソース共有(CORS)の設定不備です。
この不備により、攻撃者が用意したページから特権を持つローカルサービスと通信でき、任意のコードを確実に実行させることが可能になります。被害者はページを読み込むだけで攻撃を受けます。
ブラウザからlocalhostへの信頼に起因する不備は、繰り返し見られるパターンです。以前にも、ブラウザにおける汎用的なコード実行手法を取り上げました。メッセージハンドラーでオリジンの確認が欠けていたため、悪意あるページからネイティブアプリケーションに到達できるというものでした。
FortiClientの事例も同じ構図です。ローカルのリスナーがクロスオリジンのリクエストを受け付けるため、ブラウザの同一オリジンポリシーでは、Webコンテンツとホストレベルの機能を分離できなくなります。
CVSS v3.1のベクターは「AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H」です。ネットワーク経由で到達可能で、攻撃の複雑さは低く、必要な権限はなく、ユーザーの操作が必要であることを意味します。
スコープが「変更あり」となっているのは、コードがブラウザのサンドボックスではなく、特権を持つエンドポイントエージェントのコンテキストで実行されるためです。防御側は、インストール済みバージョンの確認に加えて、Windowsホストで次の2つの兆候を調べられます。
1つ目は、TCPポート9191で待ち受けているサービスです。2つ目は、実行中のFortiVRS.exeプロセスです。どちらかが確認できれば、脆弱なインストールである可能性があります。エンドポイントの管理チームは、ブラウザからループバックへの通信や、FortiClientのコンポーネントが生成した不審な子プロセスも確認すべきです。
影響を受けるビルドは複数の製品系統にわたります。FortiClientMacは7.4.0から7.4.7、FortiClientWindowsは7.4.0から7.4.7および7.2.0から7.2.14です。FortiClientWindowsPAMも7.4.0から7.4.7、7.2.0から7.2.14が対象です。
情報サイトでは、修正版は7.4.8、7.2.15、8.0.0以降とされています。CVEレコードには回避策の記載がありません。適用前に、Fortinetのアドバイザリーで内容を確認してください。
今回の公表は、Fortinet製品のRCE脆弱性が相次ぐ中で行われました。たとえば、攻撃コードが公開されたFortiSIEMのgRPCパストラバーサル連鎖や、CVE-2026-107656として追跡されているFortiSandboxの認証なしの認証バイパスがあります。
Fortiguardは、これらの脆弱性はサーバー側のアプライアンスが対象だと説明しています。一方、今回の脆弱性が狙うのはエンドポイントのエージェントです。攻撃者は、フィッシングリンクや不正広告、改ざんされたサイトを通じて、クライアント側から初期侵入できます。公開済みの概念実証(PoC)コードは、現時点で確認されていません。
ただし、攻撃手法は単純です。Webから確実にRCEへ至る攻撃の連鎖は、公表後すぐに再現される傾向があります。組織は、Windows、macOS、PAMを有効にしたエンドポイントのFortiClientをアップグレードすべきです。
すぐにパッチを適用できない場合は、TCP 9191にバインドされたローカルサービスをブロックするか、検知時にアラートを出すようにしてください。あわせて、特権を持つ管理者用ワークステーションでの閲覧も制限する必要があります。
アプリケーションのホワイトリスト化を徹底し、EDRのルールも調整するとよいでしょう。Fortinetのプロセスから起動されたスクリプトインタープリターやシェルを検知できるようにします。
1万6,000以上のSOCチームがANY.RUNを活用し、脅威調査を効率化して手作業を削減しています。チームで試してみる
翻訳元: https://cyberpress.org/critical-forticlient-flaw/