Gradio の脆弱性 CVE-2025-23042 が FIX:機密ファイルの漏洩に至る可能性

CVE-2025-23042 (CVSS 9.1): Gradio Patches Critical ACL Bypass Flaw in Popular Machine Learning Platform

2025/01/15 SecurityOnline — 機械学習のデモや Web アプリ開発で人気を博す、Python ライブラリ Gradio において、深刻な脆弱性 CVE-2025-23042 (CVSS:9.1) に対するパッチが適用された。この脆弱性が悪用されると、Access Control List (ACL) のバイパスが生じ、機密ファイルが暴露する恐れがある。

脆弱性 CVE-2025-23042 のアドバイザリによると、「Gradio のファイル・パスに対する Access Control List (ACL) は、ブロックされたファイルやディレクトリ・パスの文字の大文字/小文字を変更することで回避できる」という。この脆弱性の影響が及ぶのは、Windows/macOS などの、大文字/小文字を区別しないファイル・システムである。

これらの環境において、この脆弱性の悪用に成功した攻撃者は、文字の大文字/小文字を操作することで、アクセスが制限されているパスへと侵入していく。たとえば、”resources/admin/credential.txt” のような制限されたファイル・パスが、”resources/adMin/credential.txt” とリクエストすることで、アクセスできてしまうという。このアドバイザリでは、脆弱性 CVE-2025-23042 を悪用する具体的な例も示されている。

特にプロダクション環境におおては、脆弱性 CVE-2024-9042 の潜在的影響は重大である。この脆弱性が悪用されると、以下のような悪意のアクションが実行される恐れがある:

  • 不正アクセス:blocked_paths で指定された、機密性の高いファイル・ディレクトリに、攻撃者による不正アクセスの可能性が生じる。
  • データ漏洩:設定ファイルや API キーなどの、重要なファイルが漏洩する可能性がある。
  • より広範な侵害:漏洩したファイルに認証情報が含まれている場合には、権限の昇格やアプリケーションのセキュリティ・モデルの侵害などが、攻撃者に許される可能性がある。

脆弱性 CVE-2025-23042 の根本原因は、Gradio がファイル・アクセス権を判断する際に使用する is_in_or_equal 関数にある。具体的に言うと、この関数はケース (大文字と小文字) を区別しないファイル・システムにおける、ファイル・パスの大文字/小文字のバリエーションを考慮しないため、問題が発生している。

すでに Gradio チームは、パス検証ロジックに大文字/小文字の正規化を導入した、修正バージョン 5.11.0 をリリースし、この脆弱性に対処している。アドバイザリによると、「ACL に対してパスを評価する前に、リクエストされたパスとブロックされたパスに対して、大文字小文字を正規化している。たとえば、すべてのパスを小文字に変換するなどの対策を講じている」と説明されている。

ユーザーに推奨されるのは、速やかに最新バージョンに更新することである。