概要
オープンソースのPythonパッケージであるGradioにおいて、OAuth認証フローにオープンリダイレクトの脆弱性(CVE-2026-28415)が報告されました。この脆弱性は、Gradioの_redirect_to_target()関数が、クエリパラメータ_target_urlの値を適切に検証せずに受け入れてしまうことに起因します。これにより、攻撃者が細工したURLを通じて、ユーザーを任意の外部URLへリダイレクトさせることが可能になる可能性があります。本脆弱性の深刻度は「MEDIUM」と評価されています。
影響範囲
- 対象製品: Gradio (Pythonパッケージ)
- 影響を受けるバージョン: バージョン6.6.0より前のGradio
- 影響を受ける機能: OAuth認証が有効になっているGradioアプリケーション(例: Hugging Face Spaces上で
gr.LoginButtonを使用しているアプリ) - 影響を受けるエンドポイント:
/logoutおよび/login/callback
想定される影響
この脆弱性が悪用された場合、以下のような影響が想定されます。
- フィッシング攻撃: ユーザーが正規のGradioアプリから、攻撃者が用意した偽のログインページや悪意のあるウェブサイトへリダイレクトされ、認証情報が窃取される可能性があります。
- マルウェア配布: ユーザーが意図せずマルウェアをダウンロードさせられるウェブサイトへ誘導される可能性があります。
- 信頼性の低下: Gradioアプリのユーザーがセキュリティ上の懸念を抱き、サービスの信頼性が損なわれる可能性があります。
攻撃成立条件・悪用状況
- 攻撃成立条件: 攻撃者が細工したURLをユーザーにクリックさせる必要があります。また、対象のGradioアプリがOAuth機能を有効にしており、脆弱なバージョン(6.6.0未満)を使用していることが条件となります。
- 悪用状況: 現在のところ、この脆弱性が実際に悪用されているという具体的な報告は、公開情報からは確認されていません。
推奨対策
今すぐできる対策(最優先)
- Gradioのアップデート: Gradioをバージョン6.6.0以降に速やかにアップデートしてください。バージョン6.6.0では、
_target_urlパラメータがサニタイズされ、スキームやホストが除去されることで、パス、クエリ、フラグメントのみが使用されるように修正されています。
中長期的な対策
- 開発者向け: ユーザー入力に基づいてリダイレクトを行う機能を持つ場合、常にターゲットURLの厳格な検証を実装し、許可されたドメインやパスのみに制限するよう徹底してください。
一時的な緩和策
Gradioのアップデートがすぐに実施できない場合、直接的な緩和策は限定的です。しかし、以下の点を考慮することでリスクを軽減できる可能性があります。
- ユーザーへの注意喚起: 不審なリンクをクリックしないよう、ユーザーに注意を促すセキュリティ意識向上トレーニングを実施してください。
- OAuth機能の一時的な無効化: 可能であれば、アップデートが完了するまでGradioアプリのOAuth機能を一時的に無効にすることも検討できます。ただし、これはサービス運用に影響を与える可能性があります。
確認方法
- Gradioのバージョン確認: 現在使用しているGradioのバージョンを確認してください。
- OAuth機能の有効性確認: 自身のGradioアプリケーションでOAuth機能が有効になっているか、特に
gr.LoginButtonを使用しているかを確認してください。
参考情報
- CVE-2026-28415の詳細情報: https://cvefeed.io/vuln/detail/CVE-2026-28415