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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2025-59489 — Unityランタイムインジェクションの脆弱性CVE-2025-59489を検出する自動スキャナ。Android APKからUnityバージョンを抽出し、パッチ適用済みバージョンと照合してチェックします。バッチ処理とCI/CD統合に対応しています。 | Kitploit
ツール/GitHubGitHub/taptap/cve-2025-59489
Androidセキュリティ静的分析脆弱性スキャナーDevSecOpsモバイルセキュリティ
GitHubtaptap/cve-2025-59489

cve-2025-59489

Unityランタイムインジェクションの脆弱性CVE-2025-59489を検出する自動スキャナ。Android APKからUnityバージョンを抽出し、パッチ適用済みバージョンと照合してチェックします。バッチ処理とCI/CD統合に対応しています。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Unity CVE-2025-59489 脆弱性検出ツール

Android ゲームプラットフォーム専用の Unity Runtime インジェクション脆弱性自動検出ツール。

脆弱性概要

  • CVE ID: CVE-2025-59489
  • CVSS スコア: 8.4 (High)
  • 影響範囲: Unity 2017.1 以降でビルドされた Android アプリ
  • 公式発表: https://unity.com/security/sept-2025-01

脆弱性の影響詳細

影響の上限(最悪のケース)

一言でまとめると:攻撃者は影響を受ける Unity ゲーム/アプリを完全に制御し、そのアプリのすべての権限を取得できます。

Android プラットフォームでの影響シナリオ

  1. ユーザーのスマートフォンに悪意のあるアプリ A がインストールされている
  2. ユーザーのスマートフォンには影響を受ける Unity ゲーム B もインストールされている
  3. 悪意のあるアプリ A は以下が可能:
    • ゲーム B になりすまして任意のコードを実行
    • ゲーム B がアクセスできるすべてのデータを窃取(セーブデータ、アカウント情報、写真、連絡先など)
    • ゲーム B のすべての権限を使用(カメラ、マイク、位置情報、ネットワークなど)

重要ポイント:Android では、悪意のあるアプリが Unity アプリが取得済みの権限を乗っ取ることができます

Windows プラットフォームでの影響シナリオ

  1. ユーザーが悪意のあるウェブリンクをクリックする
  2. パソコンに影響を受ける Unity ゲームがインストールされている場合
  3. 攻撃者は以下が可能:
    • リモートでゲームに悪意のあるコードの読み込みをトリガー
    • ゲームの権限で任意の操作を実行
    • ゲームがアクセスできるファイルやデータを窃取

重要ポイント:Windows では、ゲームがカスタム URI ハンドラーを登録している場合、特別に細工されたリンクをクリックするだけで脆弱性をトリガーできます

具体的な影響例

重要な制限

良い知らせ:攻撃者はアプリ自体の権限境界を突破できません

  • ❌ root 権限は取得できない
  • ❌ 他のアプリのデータにはアクセスできない(Android サンドボックス保護)
  • ❌ 攻撃されたアプリの身分でしか行動できない

悪い知らせ:多くのゲームは多数の権限(カメラ、マイク、ストレージ、位置情報など)を要求するため、攻撃者はこれらの権限を完全に悪用できます

ゲームプラットフォームへの影響

Android ゲームプラットフォーム運営者として、最悪の結果:

  1. ユーザーのプライバシー漏洩 → プラットフォームの評判低下
  2. 大規模なアカウント盗難 → ユーザー離れ
  3. 法的責任 → セキュリティ審査義務の不履行
  4. 経済的損失 → ユーザーからの賠償請求、規制当局の罰則

[出典:Unity 公式セキュリティ発表、GMO Flatt Security 技術分析]

クイックスタート

環境要件

root@kitploit:~
# Python 3.7+ 標準ライブラリのみ必要、追加依存なし
python3 --version  # Python バージョンの確認

5 分で始める

root@kitploit:~
# ステップ 1: テストを実行
python test_demo.py

# ステップ 2: 単一 APK を検出
python unity_vulnerability_checker.py your_game.apk

# ステップ 3: 一括検出
python unity_vulnerability_checker.py --batch /path/to/apks

# ステップ 4: 使用例を確認
python usage_examples.py

最も簡単な使用方法

root@kitploit:~
from unity_vulnerability_checker import check_unity_vulnerability

# 単一の APK ファイルを検出
result = check_unity_vulnerability("your_game.apk")

# 方法 1: 便利なプロパティを使用
if result.is_vulnerable:
    print(f"⚠️  アプリが影響を受けています!({result.version})")
    print(f"推奨:{result.recommendation}")
elif result.is_safe:
    print(f"✅ アプリは安全です")
    print(f"理由:{result.message}")
else:
    print(f"❓ 手動確認が必要です")
    print(f"理由:{result.message}")

# 方法 2: status フィールドを使用
if result.status == "positive":
    print(f"影響あり:{result.version}")

ディレクトリ内のすべての APK を一括検出

root@kitploit:~
from unity_vulnerability_checker import batch_check

# ディレクトリを一括スキャン
results = batch_check("/path/to/apk/folder")

# 影響を受けるアプリをフィルタリング
vulnerable_apps = [
    (name, result) 
    for name, result in results.items() 
    if result.is_vulnerable
]
print(f"{len(vulnerable_apps)} 個の影響を受けるアプリを発見")
for name, result in vulnerable_apps:
    print(f"  - {name}: {result.version}")

既存システムへの統合

root@kitploit:~
from unity_vulnerability_checker import UnityVulnerabilityChecker

class MyPlatform:
    """あなたのゲームプラットフォームシステム"""

    def __init__(self):
        self.checker = UnityVulnerabilityChecker()

    def check_new_upload(self, apk_path: str) -> bool:
        """新しくアップロードされた APK をチェックし、公開可能かどうかを返す"""
        result = self.checker.check_apk(apk_path)

        if result.is_vulnerable:
            # 影響あり - 公開を拒否
            self.notify_developer(
                f"あなたのアプリは Unity の脆弱性の影響を受けています\n"
                f"バージョン:{result.version}\n"
                f"推奨:{result.recommendation}"
            )
            return False
        elif result.is_safe:
            # 安全 - 公開を承認
            return True
        else:
            # 判断不能 - 手動確認
            self.queue_manual_review(apk_path, result.message)
            return False

    def notify_developer(self, message: str):
        """開発者に通知(通知ロジックを実装)"""
        pass

    def queue_manual_review(self, apk_path: str):
        """手動確認キューに追加(ロジックを実装)"""
        pass

検出結果の説明

ツールは 3 種類の結果タイプを返します:

  • positive - 影響を確認(更新が必要)
  • negative - 安全(Unity アプリではない、または修正済み)
  • inconclusive - 判断不能(手動確認が必要)

出力例(単一行の簡潔な形式):

root@kitploit:~
# 影響を受けるアプリ
⚠️  このアプリは CVE-2025-59489 の影響を受けています (Unity 2019.2.6f1)

# 安全なアプリ(3 つのケース)
✅ このアプリは安全です - Unity アプリではありません
✅ このアプリは安全です - Unity patcher ツールで修正済み
✅ このアプリは安全です - 修正済みバージョン (2019.4.41f1)

# 判断不能
❓ 判断不能 - Unity アプリですがバージョンを抽出できません。パッキングや難読化の可能性があり、手動確認を推奨します
⚠️  ファイルが大きすぎて処理できません (1500.0MB、制限 1024MB) - コードの 15 行目の MAX_APK_SIZE_MB をより大きな値に変更してください

プロジェクトファイル一覧

root@kitploit:~
.
├── unity_vulnerability_checker.py  # コアモジュール
│   ├─ UnityVulnerabilityChecker クラス - 脆弱性検出コアエンジン
│   ├─ check_unity_vulnerability() - 簡略化された検出関数
│   ├─ batch_check() - 一括検出機能
│   └─ 完全なバージョン解析・判定ロジック
│
├── usage_examples.py               # 使用例
│   ├─ 基本的な使用例
│   ├─ 一括検出の例
│   ├─ プラットフォーム統合の例
│   ├─ 自動応答の例
│   └─ Flask API 統合の例
│
├── test_demo.py                    # テストデモ
│   ├─ バージョン番号解析テスト
│   ├─ バージョン抽出テスト
│   ├─ 修正判定テスト
│   ├─ APK スキャンシナリオシミュレーション
│   └─ パフォーマンスベンチマークテスト
│
├── test_version_detection.py       # ユニットテスト(33 テストケース)
│
├── README.md                       # 完全なドキュメント(クイックスタートガイドを含む)
│
└── CLAUDE.md                       # 開発規約

コア機能

APK 検出

  • Unity アプリの自動識別
  • Unity バージョン番号の抽出
  • CVE-2025-59489 の影響を受けるかどうかの判定
  • 3 種類の検出結果を返す:positive(影響あり)、negative(安全)、inconclusive(手動確認が必要)

一括処理

  • ディレクトリの一括スキャン対応
  • 統計レポートの生成
  • 大規模なアプリ審査に最適

統合が容易

  • シンプルな API インターフェース
  • コマンドラインツール
  • 既存システムへの組み込みが可能

使用ガイド

コマンドラインでの使用

root@kitploit:~
# 単一ファイルの検出
python unity_vulnerability_checker.py game.apk

# 詳細ログモード
python unity_vulnerability_checker.py game.apk -v

# ディレクトリの一括検出
python unity_vulnerability_checker.py --batch /path/to/apk/folder

# 一括検出(詳細モード)
python unity_vulnerability_checker.py --batch /path/to/apk/folder -v

一括スキャンとレポート生成

root@kitploit:~
from unity_vulnerability_checker import batch_check

results = batch_check("/path/to/apk/directory", verbose=True)

# 影響を受けるアプリをフィルタリング
vulnerable = {name: result for name, result in results.items()
              if result.is_vulnerable}

print(f"{len(vulnerable)} 個の影響を受けるアプリを発見")

審査システムへの統合

root@kitploit:~
from unity_vulnerability_checker import UnityVulnerabilityChecker

class AppReviewSystem:
    def __init__(self):
        self.checker = UnityVulnerabilityChecker(verbose=False)

    def review_upload(self, apk_path: str) -> str:
        result = self.checker.check_apk(apk_path)

        if result.is_vulnerable:
            return "REJECT"  # 公開を拒否
        elif result.is_safe:
            return "APPROVE"  # 承認
        else:
            return "MANUAL_REVIEW"  # 手動確認

reviewer = AppReviewSystem()
decision = reviewer.review_upload("new_game.apk")

Flask API 統合

root@kitploit:~
from flask import Flask, request, jsonify
from unity_vulnerability_checker import check_unity_vulnerability

app = Flask(__name__)

@app.route('/api/scan', methods=['POST'])
def scan_apk():
    file = request.files['file']
    temp_path = f"/tmp/{file.filename}"
    file.save(temp_path)

    result = check_unity_vulnerability(temp_path)

    # to_dict() メソッドを使用して直接 JSON に変換
    response = result.to_dict()
    response["filename"] = file.filename
    response["vulnerable"] = result.is_vulnerable
    
    return jsonify(response)

検出原理

検出ロジックのフローチャート

root@kitploit:~
          ┌─────────────────┐
          │   APK ファイルを読込  │
          └────────┬─────────┘
                   │
                   ▼
          ┌─────────────────┐
          │ Unity アプリか?  │──NO──> negative
          └────────┬─────────┘
                   │ YES
                   ▼
          ┌─────────────────────┐
          │ patcher パッチ検出? │──YES──> negative
          └────────┬─────────────┘
                   │ NO
                   ▼
          ┌─────────────────┐
          │ Unity バージョン抽出 │──失敗──> inconclusive
          └────────┬─────────┘
                   │ 成功
                   ▼
          ┌─────────────────┐
          │ バージョン < 2017.1 ? │──YES──> negative
          └────────┬─────────┘
                   │ NO
                   ▼
          ┌─────────────────┐
          │  修正済みバージョン? │──YES──> negative
          └────────┬─────────┘
                   │ NO
                   ▼
               positive

1. Unity アプリの識別

APK 内に以下の特徴が存在するか検出:

  • lib/*/libunity.so - Unity ランタイムライブラリ
  • assets/bin/Data/* - Unity リソースファイル

2. バージョン抽出

以下の場所から Unity バージョン番号を抽出:

  • libunity.so - バイナリライブラリ内のバージョン文字列
  • globalgamemanagers - Unity データファイル
  • data.unity3d - パッケージ化されたリソースファイル

対応するバージョン番号形式:

  • 標準形式:2019.4.40f1, 2022.3.15f1
  • 新形式:6000.0.23f1, 6000.2.6f2
  • 接尾辞なし:2019.4.40, 6000.0.23

3. 脆弱性の判定

Unity 公式セキュリティ発表に基づくルール:

  1. Unity 2017.1 より前 → 安全
  2. 修正済みバージョン → 安全
  3. Unity 2017.1–2018.4 → 判断不能(Unity 公式はパッチを提供していない)
  4. Unity 2019.1+ 未修正 → 影響あり(利用可能なパッチあり)

修正バージョン対応表

実際の適用シナリオ

シナリオ 1: アプリストア審査

アプリ公開前に自動スキャンし、影響を受けるアプリの公開を拒否

root@kitploit:~
from unity_vulnerability_checker import check_unity_vulnerability

def pre_publish_check(apk_path):
    result = check_unity_vulnerability(apk_path)
    if result.is_vulnerable:
        return {
            "approved": False, 
            "reason": f"CVE-2025-59489 vulnerability detected ({result.version})",
            "recommendation": result.recommendation
        }
    return {"approved": True, "message": result.message}

シナリオ 2: 既存アプリのスキャン

既存のアプリライブラリを一括スキャンし、更新が必要なアプリを特定

root@kitploit:~
python unity_vulnerability_checker.py --batch /data/published_apps > scan_report.txt

シナリオ 3: 自動モニタリング

毎日定期的に新規アップロードアプリをスキャンし、開発者に自動通知

root@kitploit:~
import schedule
from unity_vulnerability_checker import batch_check

def daily_scan():
    results = batch_check("/data/new_uploads")
    vulnerable = [(name, result) for name, result in results.items() if result.is_vulnerable]
    if vulnerable:
        # 詳細情報を含む通知を送信
        for name, result in vulnerable:
            send_notification(name, result.version, result.message)

schedule.every().day.at("02:00").do(daily_scan)

シナリオ 4: セキュリティレポート生成

プラットフォームのセキュリティレポートを生成し、脆弱性の分布状況を集計

root@kitploit:~
from unity_vulnerability_checker import batch_check
import json

results = batch_check("/data/all_apps")
report = {
    "total": len(results),
    "vulnerable": sum(1 for r in results.values() if r.is_vulnerable),
    "safe": sum(1 for r in results.values() if r.is_safe),
    "unclear": sum(1 for r in results.values() if r.is_uncertain),
    # 詳細リスト
    "vulnerable_apps": [
        {"name": name, "version": r.version, "message": r.message}
        for name, r in results.items() if r.is_vulnerable
    ]
}

with open("security_report.json", "w") as f:
    json.dump(report, f, indent=2)

シナリオ 5: CI/CD 統合

継続的インテグレーションフローに統合し、セキュリティチェックを自動化

root@kitploit:~
#!/bin/bash
# CI パイプラインで使用

python unity_vulnerability_checker.py build/output.apk
result=$(python unity_vulnerability_checker.py build/output.apk | grep "検出結果")

if echo "$result" | grep -q "positive"; then
    echo "Security check failed: CVE-2025-59489 detected"
    exit 1
fi

echo "Security check passed"

パフォーマンス指標

  • 単一ファイル検出: 0.5 - 2 秒(APK サイズに依存)
  • バージョン解析: < 0.01 ミリ秒(メモリ操作)
  • 一括スキャン: 並列処理対応(プロセス数設定可能)
  • メモリ使用量: < 100 MB(単回検出)

注意事項

偽陽性/偽陰性

安全と誤判定される可能性があるケース:

  • APK が難読化またはパッキング処理されている
  • バージョン情報が変更または削除されている
  • 非標準のビルドプロセスを使用している

影響ありと誤判定される可能性があるケース:

  • バージョン番号の形式が異常だが実際には修正済み
  • 誤ったバージョン文字列が抽出された

使用上の推奨

  1. 手動確認:inconclusive の結果については、手動確認を推奨
  2. 組み合わせ検出:他のセキュリティスキャンツールと組み合わせて使用
  3. 継続的更新:Unity 公式が更新する修正バージョンリストを注視
  4. 手動セキュリティ監査の代替にはならない:本ツールは自動化された一次スクリーニング手段としてのみ使用

よくある質問

なぜ "inconclusive" が返されるのですか?

考えられる原因:

  • APK がパッキングまたは難読化されている
  • バージョン情報が削除されている
  • ファイルが破損している
  • Unity 2017.1-2018.4 バージョン(公式パッチなし)

推奨:このようなアプリについては手動確認を実施

Unity 2017/2018 バージョンでなぜ "inconclusive" が返されるのですか?

Unity 公式は 2017.1-2018.4 バージョンにセキュリティパッチを提供していません。これらのバージョンには確かに脆弱性が存在しますが、以下の理由により:

  • Unity はこれらのバージョンのサポートを終了している
  • アップグレード可能な公式修正バージョンがない
  • 開発者が簡単な更新で解決できない

そのため "positive" ではなく "inconclusive" を返します。推奨:

  1. 開発者と連絡を取り、Unity 2019.1+ へのアップグレードと再ビルドを依頼
  2. Unity 公式が提供する緩和ツールを一時的な対策として使用
  3. リスク評価後、公開停止または猶予期間の付与を決定

検出精度はどのくらいですか?

Unity 公式発表に基づくルールにより、標準ビルドの APK では精度 > 95% です。難読化またはパッキングされた APK は追加処理が必要な場合があります。

パフォーマンスはどうですか?

単一 APK の検出は通常 0.5〜2 秒以内に完了し、効率向上のための並列一括処理に対応しています。詳細なパフォーマンス指標は本ドキュメントの「パフォーマンス指標」セクションを参照してください。

iOS アプリも検出できますか?

現在のバージョンは Android APK に特化しています。iOS .ipa ファイルの検出には追加の適応が必要です。

修正バージョンリストを更新するには?

unity_vulnerability_checker.py 内の PATCHED_VERSIONS ディクショナリを変更し、Unity 公式発表から最新情報を入手してください。

セキュリティ推奨事項

プラットフォーム運営者向け

  1. 即時対応

    • 影響を受けるアプリの公開停止またはダウンロード制限
    • 開発者に早急な更新を通知
  2. 継続的モニタリング

    • 毎日の自動スキャン体制を構築
    • 新規アップロードアプリの監視
  3. ユーザー通知

    • インストール済みユーザーに更新プロンプトをプッシュ
    • 脆弱性の説明と修正手順を提供

開発者向け

  1. Unity バージョンのアップグレード

    • 最新の修正バージョンに更新
    • アプリを再コンパイルして公開
  2. 一時的な対策(アップグレードできない場合)

    • Unity Application Patcher を使用
    • 影響を受けるランタイムライブラリを置換
  3. 修正の検証

    • 本ツールを使用して新しいバージョンを検証
    • positive と報告されないことを確認

関連リンク

  • Unity 公式発表: https://unity.com/security/sept-2025-01
  • 修正ツールのダウンロード: https://unity.com/security/sept-2025-01/remediation
  • CVE 詳細: https://nvd.nist.gov/vuln/detail/CVE-2025-59489
  • 技術分析 (GMO Flatt Security): https://flatt.tech/research/posts/arbitrary-code-execution-in-unity-runtime/

テクニカルサポート

問題が発生した場合:

  1. 本ドキュメントの詳細な説明を確認
  2. test_demo.py を実行してツールが正常に動作するか検証
  3. usage_examples.py を確認して類似シナリオを探す
  4. Unity 公式に連絡して最新情報を入手

開発ガイド

環境設定

プロジェクトには完全なコード品質チェックツールが設定されています:

root@kitploit:~
# 依存関係のインストール
pip install ruff pre-commit

# pre-commit hooks のインストール
pre-commit install

# すべてのチェックを手動実行
pre-commit run --all-files

コード品質基準

すべてのコミット前に以下のチェックが自動実行されます:

  1. Ruff Linter - Python コード静的解析

    • コードスタイルのチェック(PEP 8)
    • 潜在的なエラーの検出
    • 一般的な問題の自動修正
  2. Ruff Formatter - Python コードフォーマッター

    • コード形式の統一
    • 88 文字の行長制限
  3. 共通ファイルチェック

    • 行末スペースの除去
    • ファイル末尾の改行
    • YAML/TOML 形式の検証
    • 大容量ファイルの検出(>1MB)
    • マージコンフリクトマーカーの検出
  4. Markdown 形式チェック

    • 形式問題の自動修正
    • コードブロックの言語識別子のチェック

設定ファイル

  • ruff.toml - Ruff 設定
  • .pre-commit-config.yaml - Pre-commit hooks 設定

コミット前チェック

すべてのコードはコミット前にruff チェックを通過する必要があります。チェックが失敗した場合、コミットはブロックされます。

root@kitploit:~
# pre-commit が失敗した場合、一部の問題は自動修正されます
# 修正後は再度 git add してコミットする必要があります
git add .
git commit -m "your message"

手動チェックの実行

root@kitploit:~
# Python ファイルのみチェック
ruff check *.py

# 問題を自動修正
ruff check --fix *.py

# コードをフォーマット
ruff format *.py

更新履歴

v1.2.0 (2025-10-13)

  • Unity Patcher パッチ検出機能を追加
  • 出力情報を最適化

v1.1.0 (2025-10-11)

  • バージョン判定ロジックのエラーを修正(major >= 2019 or major >= 6000)
  • beta/alpha バージョン番号の解析と比較に対応
  • Unity アプリ識別ルールをより厳格化
  • ファイルサイズ検証を追加(500MB 制限)
  • 並列一括処理を実装
  • 標準 logging モジュールに変更
  • argparse によるコマンドライン引数解析に変更
  • マジックナンバーを定数として抽出
  • pre-commit hooks と ruff linter を設定
  • すべてのコードが ruff 品質チェックを通過

v1.0.0 (2025-10-11)

  • 初期バージョンリリース
  • Unity 2017.1 - 6000.x バージョン検出に対応
  • 一括スキャン機能に対応
  • コマンドラインインターフェース
  • Unity CVE-2025-59489 公式発表に基づく

ライセンス

本ツールはセキュリティ監査およびコンプライアンスチェック専用です。

ツールをダウンロード
ゲームがこの権限を持つ場合攻撃者は可能
📸 カメラあなたを盗撮
🎤 マイクあなたを盗聴
📍 位置情報あなたを追跡
📱 連絡先あなたの連絡先を窃取
💾 ストレージファイルの読み取り/削除
💰 決済ゲーム内決済を不正利用
🔐 アカウントゲームアカウントを窃取
Unity バージョン最低修正バージョンステータス
6000.36000.3.0b4✅ パッチあり
6000.26000.2.6f2✅ パッチあり
6000.0 LTS6000.0.58f2✅ パッチあり
2022.32022.3.62f2✅ パッチあり
2021.32021.3.45f2✅ パッチあり
2020.x2020.1.18f1+✅ パッチあり
2019.x2019.1.15f1+✅ パッチあり
2017-2018N/A⚠️ 公式パッチなし、バージョンアップを推奨