はじめに
2026 年 11 月 10 日、Fortinet は FortiClient のローカル API に関する脆弱性 CVE-2026-121529(FG-IR-26-194)を公開しました。発見者の研究者は本脆弱性を「Fortinet2Shell」と呼んでおり、複数のセキュリティ報道でもこの通称が使われています。なお、Fortinet2Shell は研究者による通称で、Fortinet の正式名称ではありません。
対象は利用者端末にインストールされる FortiClient Mac / Windows / Windows PAM です。攻撃者が用意した Web ページを利用者が開くなど、被害者の操作を伴う攻撃で、不正なコードやコマンドが実行される可能性があります。FortiClient を配布している情シス担当者、FortiClient EMS の管理者、FortiPAM の運用者は、管理下の端末のバージョンを確認する必要があります。
- CVE-2026-121529(Fortinet2Shell)の概要と攻撃条件
- 影響する FortiClient のバージョンと、影響しない製品
- FortiPAM / FortiVRS.exe / TCP 9191 の位置づけと端末の確認方法
- 修正版への更新前後に確認する観点と、暫定対策の限界
結論として、FortiClient Mac / Windows 7.4.0〜7.4.7、Windows 7.2.0〜7.2.14、および Windows PAM の同じ範囲に該当する端末は、7.4.8 以降または 7.2.15 以降への更新が必要です。Fortinet は Virtual Patch を提供しておらず、FortiPAM を使っていない端末でも、対象バージョンであれば更新対象です。8.0 系と FortiClient Mac 7.2 系は影響を受けません。
CVE-2026-121529(Fortinet2Shell)の概要と攻撃条件
本脆弱性は、FortiClient のローカル API が要求元の Origin を正しく検証しないことに起因します。ここでは、Fortinet の公式情報と、研究者・報道による説明を分けて整理します。
Fortinet PSIRT が公表している内容
Fortinet PSIRT のアドバイザリー「Origin validation error in local API endpoint」に記載されている主な項目は次のとおりです。攻撃の成立には被害者の操作が必要とされています。
| 項目 | PSIRT の記載 |
|---|---|
| IR 番号 | FG-IR-26-194 |
| 公開日 | 2026 年 11 月 10 日 |
| 脆弱性の種類 | Origin 検証不備(CWE-346) |
| コンポーネント | API |
| 深刻度 | Critical(CVSSv3 9.1) |
| 攻撃種別 | 認証不要(Unauthenticated) |
| 影響 | 権限昇格(Escalation of privilege) |
| 既知の悪用 | No |
| Virtual Patch | No |
| 報告者 | Kevin Joensen 氏(Baldur Security) |
参考: Fortinet PSIRT(FG-IR-26-194)
“may allow an unauthorized remote attacker to execute unauthorized code or commands.”
(認証されていないリモートの攻撃者が、不正なコードやコマンドを実行できる可能性がある。)
https://fortiguard.fortinet.com/psirt/FG-IR-26-194
研究者が説明する Fortinet2Shell の攻撃経路
GBHackers などの報道によると、Kevin Joensen 氏は根本原因を CORS の設定不備と説明しています。FortiClient が端末上で動かしているローカルサービスが Web ページからの要求を誤って信頼するため、攻撃者が用意したサイトからそのサービスへ要求を送り、コードを実行できるとされています。また、FortiPAM を有効にした FortiClient で安定して成立すると述べたと報じられています。
発見者本人の投稿原文は本記事の執筆時点で直接確認できていないため、以下は報道と Fortinet の公開資料で確認できた範囲の説明です。まず、関係する用語を整理します。
- Origin
-
Web ページの出所を示す「スキーム・ホスト名・ポート番号」の組み合わせです。ブラウザーは、Origin が異なるページ同士のデータのやり取りを制限しています。この制限を同一オリジンポリシーと呼びます。
- CORS
-
Cross-Origin Resource Sharing の略で、サーバー側が「どの Origin からの要求を受け入れるか」をブラウザーへ伝える仕組みです。許可する範囲を広く設定しすぎると、意図しない Web サイトからの要求も受け付けてしまいます。
- ローカル API
-
端末上のソフトウェアが自身の端末内で待ち受け、同じ端末のブラウザーや他のプロセスから呼び出される API です。PSIRT のタイトルにある「local API endpoint」がこれに当たります。
ローカル API は「同じ端末からの要求だから安全」と扱われがちですが、ブラウザーは外部サイトのスクリプトから端末内のサービスへ要求を送信できます。要求元の Origin を検証しないと、利用者が開いた外部ページを経由してローカル API が操作されるおそれがあります。
ただし、CORS の設定不備があるだけで、任意のコード実行に至るわけではありません。コード実行に至るかどうかは、そのローカル API がどのような機能を提供し、受け取った要求をどう処理するかに依存します。Fortinet の FortiPAM 管理ガイドでは、FortiClient の FortiVRS がユーザーセッションでアプリケーションを起動する役割を担うと説明されています。一方、脆弱なエンドポイント名、要求の内容、コード実行時の権限は公開されていません。

FortiClient と FortiClient EMS の違い
今回の脆弱性は、利用者端末にインストールされる FortiClient(端末エージェント)の問題です。FortiClient を管理する FortiClient EMS サーバーそのものの脆弱性ではありません。
| 項目 | FortiClient | FortiClient EMS |
|---|---|---|
| 役割 | 端末エージェント(VPN、ZTNA、PAM 連携など) | FortiClient を配布・管理する管理サーバー |
| 導入場所 | 利用者の Windows / Mac 端末 | 管理用サーバー |
| CVE-2026-121529 | 対象 | PSIRT の影響表に記載なし |
| CVE-2026-35616 | 対象外 | 対象(EMS 側の脆弱性) |
EMS のバージョンが新しいことだけでは、管理対象の端末に脆弱な FortiClient が残っていないとは判断できません。端末側のバージョンは、EMS のエンドポイント一覧などで個別に確認してください。過去に悪用された EMS サーバー側の脆弱性と緊急ホットフィックスの手順は、『FortiClient EMS の脆弱性 CVE-2026-35616 と緊急ホットフィックス適用の手順』で解説しています。
悪用状況と CVSS の評価元
Fortinet PSIRT は、本脆弱性の既知の悪用を「No」としています。また、2026 年 11 月 10 日版の CISA KEV カタログに CVE-2026-121529 は掲載されていません。CISA KEV に掲載されている FortiClient EMS の脆弱性(CVE-2026-35616 など)は別製品・別 CVE であり、本 CVE の悪用実績ではありません。
CVSS は評価元によって表示値が異なります。どの値でも Critical の範囲であり、対応の優先度は変わりません。
| 評価元 | CVSS | 備考 |
|---|---|---|
| Fortinet PSIRT | 9.1 | CVSSv3 として公表 |
| CVE レコード(CNA: Fortinet) | 9.1 | 2026 年 11 月 12 日更新時点の記録 |
| NVD の表示 | 9.6 | 報道による。NVD 独自の分析は保留中と報じられている |
影響する FortiClient のバージョンと影響しない製品
Fortinet PSIRT の影響表(2026 年 11 月 12 日確認)は次のとおりです。FortiClient Mac は 7.4 系のみ、FortiClient Windows と Windows PAM は 7.4 系と 7.2 系が対象です。
| 製品 | 系列 | 影響バージョン | 対応 |
|---|---|---|---|
| FortiClient Mac | 8.0 | 影響なし | 対応不要 |
| FortiClient Mac | 7.4 | 7.4.0〜7.4.7 | 7.4.8 以降へ更新 |
| FortiClient Mac | 7.2 | 影響なし | 対応不要 |
| FortiClient Windows | 8.0 | 影響なし | 対応不要 |
| FortiClient Windows | 7.4 | 7.4.0〜7.4.7 | 7.4.8 以降へ更新 |
| FortiClient Windows | 7.2 | 7.2.0〜7.2.14 | 7.2.15 以降へ更新 |
| FortiClient Windows PAM | 8.0 | 影響なし | 対応不要 |
| FortiClient Windows PAM | 7.4 | 7.4.0〜7.4.7 | 7.4.8 以降へ更新 |
| FortiClient Windows PAM | 7.2 | 7.2.0〜7.2.14 | 7.2.15 以降へ更新 |
影響表に記載されている製品は FortiClient Mac / Windows / Windows PAM の 3 つです。VPN 機能のみの無償版など、表に記載のない製品・エディションを利用している場合は、PSIRT の最新版と照合して判断してください。
CVE レコードとの記載差異(Windows PAM)
CVE レコード(2026 年 11 月 12 日更新時点)では、FortiClient Windows PAM の影響バージョンが 7.4.7 と 7.2.14 の個別バージョンとしてのみ記録されています。一方、PSIRT は 7.4.0〜7.4.7 と 7.2.0〜7.2.14 の範囲で記載しています。修正版はどちらも 7.4.8 以降、7.2.15 以降で一致しています。
本記事では、ベンダーの一次情報である PSIRT の範囲表記を対応判断の基準とし、Windows PAM の 7.4.0〜7.4.6 や 7.2.0〜7.2.13 も更新対象として扱うことを推奨します。脆弱性スキャナーなどが CVE レコードの情報を基に判定している場合、7.4.7 / 7.2.14 以外の Windows PAM を対象外と表示する可能性がある点に注意してください。
FortiPAM を使っていない端末の扱い
研究者は FortiPAM を有効にした環境でのコード実行に言及していますが、PSIRT は FortiPAM の有効化を攻撃条件として記載していません。PSIRT の影響表には、PAM 専用の Windows PAM だけでなく、FortiClient Mac と FortiClient Windows も含まれています。
そのため、FortiPAM を使っていない端末でも、PSIRT の対象バージョンに該当すれば更新対象として扱ってください。FortiPAM を利用している端末は、研究者が攻撃の成立を報告している構成のため、更新の優先度を上げることをおすすめします。
自社端末の確認方法と FortiPAM / TCP 9191 の位置づけ
影響端末の特定は、製品の種類とバージョンの照合が基本です。FortiVRS.exe や TCP 9191 は、Windows で補助的に確認する参考指標として扱います。
端末にインストールされているのが FortiClient Mac / Windows / Windows PAM のどれかを確認します。EMS で管理している端末は EMS のエンドポイント一覧、それ以外は MDM や資産管理ツールのインベントリーを使うと、端末ごとの確認を減らせます。
OS とバージョン(8.0 系 / 7.4 系 / 7.2 系)を確認します。Mac は 7.4 系のみが対象で、7.2 系は影響を受けません。EMS の管理外で個別にインストールされた端末も確認対象に含めます。
FortiPAM を運用しているか、FortiPAM 機能を有効にして FortiClient を導入した端末や Windows PAM を導入した端末がどれかを把握します。この結果は更新の優先度付けに使い、対象かどうかの判定には使いません。
Windows 端末では、後述のコマンドで FortiVRS.exe の実行と TCP 9191 の待ち受けを確認できます。FortiPAM 関連機能が動作している端末を洗い出す補助として使います。
前章の影響表と照合し、対象バージョンの端末をすべて更新対象とします。そのうえで、FortiPAM を利用する管理者端末や、外部の Web サイトを閲覧する機会が多い端末から優先して更新することをおすすめします。

Windows で FortiClient のバージョンと FortiVRS.exe を確認するコマンド
Windows 端末で個別に確認する場合は、次の PowerShell コマンドを使用できます。いずれも情報を取得するだけの読み取り専用のコマンドで、設定やプロセスは変更しません。
インストール済みの FortiClient の製品名とバージョンを、レジストリのアンインストール情報から表示します。
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*','HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' |
Where-Object { $_.DisplayName -like '*FortiClient*' } |
Select-Object DisplayName, DisplayVersionFortiVRS.exe のプロセスが実行されているかを確認します。-Name には拡張子 .exe を付けずに指定します。
Get-Process -Name FortiVRS -ErrorAction SilentlyContinueTCP 9191 で待ち受けている接続と、所有プロセスの PID を表示します。
Get-NetTCPConnection -LocalPort 9191 -State Listen -ErrorAction SilentlyContinue |
Select-Object LocalAddress, LocalPort, State, OwningProcessコマンドの仕様は Microsoft の公式リファレンス(Get-ItemProperty / Get-Process / Get-NetTCPConnection)を参照してください。複数の端末をまとめて確認する場合は、EMS のインベントリーや既存の資産管理ツールの利用を優先することをおすすめします。
FortiVRS.exe と TCP 9191 の位置づけ
報道によると、Joensen 氏はバージョン確認に加え、Windows で脆弱なインストールを見つける手がかりとして TCP 9191 で待ち受けるサービスと FortiVRS.exe の実行を挙げています。Fortinet の公式ドキュメントでも、fortivrs.exe は PAM 機能を担うプロセスとして、TCP 9191 は FortiPAM で使用するポートとして記載されています。
参考: FortiClient Administration Guide(FortiClient (Windows) processes)
“fortivrs.exe FortiClient Video Record Daemon provides PAM functionality”
(fortivrs.exe は FortiClient Video Record Daemon で、PAM 機能を提供する。)
https://docs2.fortinet.com/document/forticlient/7.2.13/administration-guide/209271

FortiVRS.exe や TCP 9191 は研究者由来の参考指標です。検出されない端末でも対象バージョンであれば更新が必要で、検出されても侵害の有無は判断できません。脆弱性の確定判定はバージョン照合で行ってください。
Mac 端末の確認
FortiClient Mac 7.4.0〜7.4.7 も影響を受けます。FortiVRS.exe と TCP 9191 は Windows について報じられた指標のため、Mac 端末は EMS や MDM のインベントリー、または FortiClient 上のバージョン表示で 7.4 系のバージョンを確認してください。Windows 固有の指標が見つからないことを理由に、Mac 端末を対象外と判断しないよう注意が必要です。
修正版への更新と適用後の確認
恒久対策は、7.4 系は 7.4.8 以降、7.2 系は 7.2.15 以降への更新です。CVE レコードの解決策には 8.0.0 以降への更新も記載されていますが、メジャーバージョンの変更となるため、互換性を確認したうえで判断してください。
更新前に確認すること
- 配布方法: EMS からの配布、MDM、ソフトウェア配布ツール、手動インストールのどれで配布しているか
- 管理方法: EMS の管理外にある端末や、長期間ネットワークに接続していない端末がないか
- バージョン互換性: 利用中の EMS、FortiGate、FortiPAM と更新後の FortiClient の組み合わせが、対象バージョンのリリースノートでサポートされているか
- 業務影響: 更新中の VPN 切断や再起動の要否、在宅勤務者への周知、更新を実施する時間帯
具体的なアップグレード手順は、配布方法や EMS のバージョンによって異なります。利用中の FortiClient と EMS のバージョンに対応する Fortinet 公式の管理ガイドとリリースノートを確認してから実施してください。
適用後に確認する観点
| 確認観点 | 確認内容 |
|---|---|
| バージョン | 端末と EMS のインベントリーで 7.4.8 以降または 7.2.15 以降になっているか |
| VPN 接続 | 利用している VPN(SSL VPN / IPsec VPN など)で接続できるか |
| 認証 | SAML などの認証方式で、更新前と同様にサインインできるか |
| FortiPAM 関連機能 | FortiPAM を利用している場合、シークレットの起動やセッション録画が動作するか |
| 管理サーバーとの通信 | EMS 上で端末の接続状態やポリシー適用が正常に表示されるか |
| 未更新端末 | オフライン端末や EMS 管理外の端末が残っていないか |
暫定対策の限界
Fortinet PSIRT は Virtual Patch を「No」としており、FortiGuard の IPS シグネチャーなどによるネットワーク側の緩和策は示されていません。不審なリンクへのアクセス抑止、Web フィルタリング、利用者への注意喚起は攻撃ページへの到達を減らす補助的な策で、修正版への更新と同等の対策ではありません。
また、研究者の説明どおりであれば、攻撃の最終段階は端末内のブラウザーからローカル API への通信で行われると考えられます。これは研究者の説明に基づく編集上の推論です。FortiGate の IPS や通信制御だけで本脆弱性を確実に防げるとは判断できないため、対象端末の更新を最優先してください。
まとめ
CVE-2026-121529(Fortinet2Shell)は、利用者端末の FortiClient が持つローカル API の Origin 検証不備です。対象バージョンの判定は PSIRT の影響表とのバージョン照合で行い、該当する端末は修正版へ更新する必要があります。
- CVE-2026-121529 は FortiClient のローカル API の Origin 検証不備です。
- Mac / Windows 7.4.0〜7.4.7 と Windows 7.2.0〜7.2.14 が対象です。
- Windows PAM も同じ範囲が対象で、8.0 系と Mac 7.2 系は影響を受けません。
- FortiPAM を使っていなくても、対象バージョンなら更新が必要です。
- EMS が新しくても、端末側の FortiClient は個別に確認が必要です。
- FortiVRS.exe や TCP 9191 は参考指標で、確定判定には使えません。
- Virtual Patch はなく、7.4.8 / 7.2.15 以降への更新が恒久対策です。
以上、最後までお読みいただきありがとうございました。


