CVE-2026-48545 GradioのCookieインジェクションによるセッション固定脆弱性を解説 AI Security対策ガイド

結論
- 危険度: Medium (CVSS 6.8)
- 対象: (詳細はベンダーアドバイザリ参照)
- 修正: ベンダーアドバイザリ参照
- KEV: No (NVD Critical由来。CISA KEVには未登録)
タイトルの緊急度プレフィックス(【至急】【最重大】等)の意味
| 表記 | 条件 | 意味 | 対応目安 |
|---|---|---|---|
| 【至急/ランサム悪用】 | CISA KEV登録 + ランサムウェア悪用観測 | ランサムグループが現在進行形で悪用 | 本日中に対応開始 |
| 【至急/重大】 | CISA KEV登録 + CVSS 9.0以上 | 実世界で攻撃観測あり + スコア極めて高い | 本日中に対応開始 |
| 【重大/KEV登録】 | CISA KEV登録(CVSS低またはNVD未反映) | 実世界で攻撃観測あり | 数日以内 |
| 【最重大】 | CVSS 9.5以上(KEV未登録) | 理論上の危険度ほぼ満点、攻撃観測はまだない | 1週間以内に対応計画 |
| 【重大】 | CVSS 9.0〜9.4(KEV未登録) | Critical帯の理論的高リスク | 1〜2週間以内 |
| 【高】 | CVSS 7.0〜8.9(KEV未登録) | High帯のリスク | 計画的に対応 |
| (プレフィックスなし) | CVSS 7.0未満 | Medium以下のリスク | 通常メンテで対応 |
「至急」と「最重大」の違い: 「至急」は CISA(米国政府機関)が 実際に悪用を観測した CVEに付与されます。「最重大」は CVSS スコア上は最高峰だが、まだ悪用観測がない ものです。同じCVSS 9.8でもKEV登録の有無で扱いが変わります。
最終更新: 2026-05-27 | 本記事は公式情報をもとに作成しています。最新情報はベンダー公式アドバイザリを必ずご確認ください。
| STEP | やること | かかる目安 |
|---|---|---|
| STEP 1 | 何が起きているか理解する | 3分 |
| STEP 2 | 急ぎ対応すべきか判断する | 5分 |
| STEP 3 | 自分の環境が対象か確認する | 環境による |
| STEP 4 | 修正を適用する | 環境による |
| STEP 5 | 修正されたことを確認する | 3分 |
STEP 1: 何が起きているか
一言でいうと
CVE-2026-48545はGradioの6.15.0未満のバージョンにある脆弱性で、リモートの攻撃者が共有のHTTPクライアントを利用してセッションの乗っ取りを行えます。これによりLLMゲートウェイの運用者は複数のユーザーセッションが混ざるリスクに直面し、最優先で対応が必要です。
やさしく説明すると
想像してください。複数の人が鍵を共有する玄関の鍵を使っています。その鍵が悪意のある人に複製されてしまうことで、他の人の家に無断で入れてしまいます。今回の脆弱性はGradioの仕組みが複数の利用者のリクエストを一つの鍵(HTTPクライアント)で処理しているため、攻撃者が悪いクッキーを注入し、それを使って他のユーザーのセッションを乗っ取れる状態です。
技術的な原因
脆弱性の原因はCWE-384「Session Fixation(セッション固定攻撃)」です。Gradio のリバースプロキシエンドポイントで、すべてのユーザーが共用するモジュールレベルのHTTPクライアントを利用しています。この共有クライアントが攻撃者から送られた親ドメインのCookieを保存し、それを正当な他のスペースへのプロキシリクエストに自動的に付加してしまいます。認証や許可のチェックが不十分で、共有クッキーの制御が不適切なことが根本にあります。
影響を受けると何が困るか
- LLMゲートウェイ全体でセッションが混ざり合い、データ漏洩や誤操作が起きる
- 顧客や利用者のプライベートコンテキストが窃取される恐れ
- 悪意ある攻撃者によるプロンプトやエージェント乗っ取りが可能になる
- AIコーディングツール(CursorやCline等)経由で情報漏洩が起きる可能性
- マルチテナント環境での権限混在からインフラ全体の侵害リスク
もっと詳しく調べたい人へ — 公式情報源マップ
本記事は以下の公式・準公式の情報源から内容を集約しています。一次情報を確認したい場合や英語で詳細を読みたい場合は、各リンクから直接アクセスできます。
| カテゴリ | 情報源 | 言語 | 何が分かるか | リンク |
|---|---|---|---|---|
| 総合 | NVD(米国 NIST) | 英 | 米国政府の脆弱性データベース。CVSSスコア、影響を受けるCPE、参考リンクの総合ハブ。最も網羅的。 | 開く |
| 総合 | MITRE CVE | 英 | CVE採番機関の公式記録。CVE記述の「正本」。NVDより記載が簡潔だが一次情報。 | 開く |
| 総合 | JVN iPedia(JPCERT/CC・IPA) | 日 | 日本のCSIRTが運用する脆弱性対策情報データベース。日本語で概要・対策が読める。掲載がない場合あり。 | 開く |
| 総合 | CISA KEV(悪用観測カタログ) | 英 | 米国CISAが実際に悪用を確認している脆弱性のカタログ。掲載されていれば最優先で対応。 | 開く |
| 総合 | GitHub Advisory Database | 英 | OSSパッケージ(npm/pypi/maven/composer/go等)別の脆弱性アドバイザリ。修正PRへのリンクが豊富。 | 開く |
| 総合 | OpenCVE | 英 | 複数CVEデータベースの集約検索サービス。タイムラインや関連CVEの俯瞰に有用。 | 開く |
| Linux | Red Hat CVE | 英 | Red Hat製品(RHEL/CentOS Stream/Rocky/AlmaLinux系)の影響評価とパッチ状況。 | 開く |
| Linux | Ubuntu Security | 英 | Ubuntu の影響評価。各Ubuntuバージョン(22.04/24.04等)でのパッチ提供状況が一目で分かる。 | 開く |
| Linux | Debian Security Tracker | 英 | Debian の影響評価。stable/testing/sid別のパッチ状況。Debian派生ディストリ利用者向け。 | 開く |
| Linux | SUSE CVE | 英 | SUSE Linux Enterprise / openSUSE の影響評価とパッチ状況。 | 開く |
| 悪用 | Exploit Database | 英 | 公開エクスプロイトのアーカイブ。検出ツールやペネトレーションテストでの参照用。 | 開く |
| 悪用 | Packet Storm Security | 英 | セキュリティアドバイザリ・エクスプロイトの集約サイト。古めの情報も含む。 | 開く |
| 悪用 | GitHub PoC 検索 | 英 | GitHubコード検索でCVE IDを直接検索。野良PoCの早期発見に。 | 開く |
| 悪用 | X(Twitter)検索 | 日英 | 直近の議論やニュースを観測。In-the-wild悪用の早期検知に有用。 | 開く |
| スキャナ | Snyk Vulnerability DB | 英 | パッケージ別の脆弱性詳細と修正バージョン。OSS依存ライブラリ追跡に有用。 | 開く |
| スキャナ | Tenable(Nessus) | 英 | Nessusスキャナでの検出プラグイン情報。検出ロジックの参考に。 | 開く |
| スキャナ | Rapid7(Metasploit/Nexpose) | 英 | Metasploit悪用モジュール、Nexposeでの検出情報。 | 開く |
掲載しているのは無料でアクセスできる情報源のみです。CVEによっては掲載がないサイトもあります(特にJVN iPediaは日本国内で報告された脆弱性のみ掲載)。
STEP 2: 急ぎ対応すべきか判断する
結論: 低
判断根拠
- CVSS v3.1スコアは
6.8でMedium評価。実務的には影響があるが緊急度は高くない。 - 攻撃複雑度(AC)が
High。攻撃にはユーザーの操作も必要で容易ではない。 - EPSSスコアは提供されておらず、悪用予測は低いと推測される。
- CISA KEVには登録されていないため、ランサムウェア等による悪用観測は現時点で不明。
- 公開されているPoCコードやエクスプロイトは存在しない。
- ネットワーク経由で攻撃可能だが認証やユーザー操作が必要であり、デフォルト設定が無条件で脆弱ではない。
誰が動くべきか
- Gradioを利用してLLM Gatewayを運用しているエンジニアやSRE/SecOpsチーム
- Agentフレームワークの一部としてGradioを使っている開発者
- Cursor、Cline、Copilotなどを活用したAI駆動開発のバイブコーダー開発者
STEP 3: 自分の環境が対象か確認する
影響を受けるバージョン
| 製品 | 脆弱なバージョン範囲 | 修正版 |
|---|---|---|
| Gradio | ~6.14.99(6.15.0未満) |
6.15.0以降 |
バージョン確認コマンド
Python(pip)
pip show gradio
出力例:
Name: gradio
Version: 6.14.3
Summary: Gradio: create customizable UI components around your ML models
判定: Versionが6.15.0未満なら脆弱、以上なら安全
Python(pip list + grep)
pip list | grep gradio
出力例:
gradio 6.14.3
判定: 表示されたバージョンが6.15.0未満の場合は対象
設定確認
この脆弱性は共有のモジュールレベルHTTPクライアントのCookie管理の問題で、特定の設定やフラグに依存しません。バージョンが脆弱範囲内であれば影響を受けます。
Nucleiテンプレートでの検出
公開Nucleiテンプレートはありません。バージョン確認が有効な検出手段です。
STEP 4: 修正を適用する
パッチ適用
Python環境でのアップグレード
pip install --upgrade gradio
出力例:
Successfully installed gradio-6.15.0
判定: バージョンが6.15.0以降にアップグレードされれば修正適用済み
注意: 修正適用前に必ず環境のバックアップを取得してください。ステージング環境での動作検証を推奨します。ダウンタイム計画も検討してください。
パッチ即時適用ができない場合の暫定対応
ベンダーから公式の暫定対応は提示されていません。暫定的にはGradioを外部公開しない、または逆プロキシ設定でCookieの注入を厳しく制限することが有効です。
STEP 5: 修正されたことを確認する
STEP 3で使ったバージョン確認コマンドを再度実行します。
期待される出力
Python(pip show)
pip show gradio
出力例:
Name: gradio
Version: 6.15.0
Summary: Gradio: create customizable UI components around your ML models
判定: バージョンが 6.15.0 以上なら安全
追加で確認すべきこと
脆弱性は共有HTTPクライアントのCookie処理に依存するため、該当バージョンでなければCookie注入は発生しません。公開されているPoCはなくNucleiテンプレートも未提供ですが、念のためログを監視し不審なCookie操作やセッション混在が発生していないかを確認してください。
補足: 悪用観測状況
現時点でCISA KEVリストには登録されておらず、ランサムウェア等による悪用確認はありません。GitHubやExploit DatabaseでもPoCやエクスプロイトは公開されていません。攻撃はユーザー操作が必要で複雑なため、実際の悪用例はまだ確認されていません。
補足: CVSSメトリクス詳細
- AV (Attack Vector:攻撃元) = NETWORK(ネットワーク経由で攻撃可能)
- AC (Attack Complexity:攻撃複雑度) = HIGH(攻撃には条件や手順が複雑で容易でない)
- PR (Privileges Required:必要権限) = NONE(ログインなしで攻撃可能)
- UI (User Interaction:ユーザー操作) = REQUIRED(ユーザーの操作が必要)
- S (Scope:影響範囲) = UNCHANGED(同一権限内での影響)
- C (Confidentiality:機密性影響) = HIGH(機密情報漏洩の可能性大)
- I (Integrity:完全性影響) = HIGH(データ改ざんの可能性大)
- A (Availability:可用性影響) = NONE(サービス停止の影響なし)
よくある質問(FAQ)
Q. このCVEに対応するために最低限すべきことは何ですか?
A. STEP 3〜5のバージョン確認、修正適用、再確認を必ず行ってください。具体的にはGradioのバージョンを6.15.0以上にアップデートすることが重要です。
Q. パッチが適用できない場合、どうすればよいですか?
A. STEP 4の暫定対応を検討してください。Gradioを外部公開しない、プロキシ設定でCookie管理を強化するなどの対策が有効です。
Q. 既に攻撃を受けているか確認する方法はありますか?
A. 不審なCookieの注入やセッションの混在、異常なプロキシアクセスログを監視してください。公式の侵入検知ルールはまだ公開されていません。
Q. なぜEPSSスコアが重要なのですか?
A. CVSSは脆弱性の技術的な深刻度を示しますが、EPSSは「実際に悪用される可能性」を示します。両方見ることで対応優先度の判断がより正確になります。
Q. このCVEと類似の脆弱性は他にもありますか?
A. 同じCWE-384「Session Fixation」系の脆弱性は過去にもWebアプリケーションで多数報告されています。Gradio以外のLLMゲートウェイも注意してください。
参考文献
- NVD CVE-2026-48545
- GitHub Advisory Database GHSA-7hp7-4p35-3cx2
- Gradio 6.15.0 リリースノート (修正パッチ)
- GitHub Issue 13369 脆弱性説明
- GitHub Pull Request 13384 修正内容
- VulnCheck Advisory
関連トピック・タグから探す
本記事に関連するキーワードから、他のAIセキュリティ記事を探せます。
2026-06-04 追記
本記事の公開後、以下の重要な変化が確認されました(公開からの経過: 6日)。
| 項目 | 公開時点 | 2026-06-04時点 | 変化の意味 |
|---|---|---|---|
| 結論ボックスの対象範囲が未記入 | (詳細はベンダーアドバイザリ参照) | cpe:2.3:a:gradio_project:gradio:*:*:*:*:*:python:*:* <6.15.0 | 公開時は具体的な対象範囲が不明だったが、現在は確定済み(記事生成時の凡ミス補正) |
| 結論ボックスの修正バージョンが未記入 | ベンダーアドバイザリ参照 | 2件のパッチリンクあり(https://github.com/gradio-app/gradio/commit/feb7237d01f359d2ad4ee42d00344e61692b3b39 等) | 公開時は修正版情報が結論ボックスにテンプレ文字列のまま残っていた。現在は具体的な修正版が判明(記事生成時の凡ミス補正) |
結論ボックスの対象範囲が未記入
公開当初、本記事では影響を受ける対象範囲について「(詳細はベンダーアドバイザリ参照)」と記載していましたが、2026-06-04時点で「cpe:2.3:a:gradio_project:gradio:*:*:*:*:*:python:*:* <6.15.0」と明確に特定されました。これはGradioの6.15.0未満バージョンが影響対象であることを意味しており、自組織の運用製品が本CPEに該当する場合、積極的な確認と対応が必要となります。今後は範囲特定が必要な場合も、公式CPE確定を速やかに反映することを強く推奨します。
グローバルなCPE指定が明確化されたことで、資産管理やパッチ適用判断の自動化が可能となりました。運用者は該当するGradioバージョンの棚卸し作業を行い、未対応システムの即時対応計画立案に役立ててください。
結論ボックスの修正バージョンが未記入
記事公開時点では修正バージョンに関する情報を「ベンダーアドバイザリ参照」と暫定表記していましたが、現在は具体的な修正コミット(例: feb7237d01f359d2ad4ee42d00344e61692b3b39 ほかパッチ)への言及が追記されています。これにより、どのリリースで脆弱性が解消されたか明確となり、修正版適用の判断が容易となります。
技術担当者は、これらのパッチを参照し自身の環境のGradioが該当バージョンへのアップデート済みかを再確認してください。組織としては、修正バージョンの明記を受け、パッチ未適用システムへの速やかなアップデートと、その結果の検証を推奨します。また、将来的な情報更新時にも修正版情報の明確化を習慣化すると、運用ミスによるリスク増大を防げます。
2026-06-11 追記
本記事の公開後、以下の重要な変化が確認されました(公開からの経過: 13日)。
| 項目 | 公開時点 | 2026-06-11時点 | 変化の意味 |
|---|---|---|---|
| 結論ボックスの対象範囲が未記入 | (詳細はベンダーアドバイザリ参照) | cpe:2.3:a:gradio_project:gradio:*:*:*:*:*:python:*:* <6.15.0 | 公開時は具体的な対象範囲が不明だったが、現在は確定済み(記事生成時の凡ミス補正) |
| 結論ボックスの修正バージョンが未記入 | ベンダーアドバイザリ参照 | 2件のパッチリンクあり(https://github.com/gradio-app/gradio/commit/feb7237d01f359d2ad4ee42d00344e61692b3b39 等) | 公開時は修正版情報が結論ボックスにテンプレ文字列のまま残っていた。現在は具体的な修正版が判明(記事生成時の凡ミス補正) |
結論ボックスの対象範囲が未記入
公開時点では「(詳細はベンダーアドバイザリ参照)」とされていた結論ボックスの対象製品範囲が、2026-06-11時点では「cpe:2.3:a:gradio_project:gradio:*:*:*:*:*:python:*:* <6.15.0」と明確になりました。技術的にはGradioの6.15.0未満のPython版がすべて影響範囲に含まれることが可視化された形となります。これにより、自身の環境が対象かどうかを迅速かつ正確に判定できるようになったため、ユーザーやシステム管理者は該当するバージョンを運用していないかの再確認を強く推奨します。
結論ボックスの修正バージョンが未記入
記事公開時には「ベンダーアドバイザリ参照」というテンプレート文のみが結論ボックスに記載されていましたが、現時点では「2件のパッチリンクあり(https://github.com/gradio-app/gradio/commit/feb7237d01f359d2ad4ee42d00344e61692b3b39 等)」という具体的な修正版の情報に更新されています。これにより、どの修正コミットを適用すれば対策完了となるのかが明確になりました。運用者は、当該パッチの内容および適用状況を確認し、未対応の場合は速やかに対応を進めることを推奨します。
