
Craft CMS向けの事前認証リモートコード実行エクスプロイト。未サニタイズのセッションデータストレージと安全でないデシリアライゼーションを連鎖させ、脆弱なサーバー(バージョン3.x、4.x、5.x)上で任意のコマンドを実行します。
CVE-2025-32432 は、Craft CMS の複数バージョンに影響する重大な事前認証リモートコード実行(RCE)脆弱性です。無害化されていないセッションデータの保存と安全でないデシリアライゼーションガジェットを連鎖させることで、認証されていない攻撃者がリモートサーバー上で任意のコマンドを実行できます。
| ブランチ | 脆弱な上限 |
|---|---|
| Craft CMS 3.x | ≤ 3.9.14 |
| Craft CMS 4.x | ≤ 4.14.14 |
| Craft CMS 5.x | ≤ 5.6.16 |
⚠️ 説明されたルーティング動作を示すすべての古いバージョンも影響を受ける可能性があります。
この脆弱性は、assets/generate-transform エンドポイントにおける 2つの異なる弱点 を連鎖させることで発生します。
古いルーティング動作では、生のクエリパラメータがサニタイズやフィルタリングなしで、/tmp/sess_<PHPSESSID> にあるPHPセッションファイルに直接書き込まれます。
Yiiデシリアライゼーションガジェットチェーン(FieldLayoutBehavior → PhpManager)により、攻撃者は任意のファイル(この場合は悪意のあるセッションファイル)のインクルードを強制できます。
複合的な影響: サーバーの完全な侵害、データの流出、水平移動など。
requestsurllib3# 要件ファイルからインストール
pip install -r requirements.txt
# または直接インストール
pip install requests urllib3
python exploit.py -u <ターゲットURL> -c "<コマンド>" [オプション]
# 自動エクスプロイト — アセットIDを自動ブルートフォース
python exploit.py -u https://craft.example.com -c "id"
# 既知のアセットIDを使用 — より信頼性が高く高速
python exploit.py -u https://craft.example.com -c "cat /etc/passwd" -a 42
# カスタムタイムアウト + 詳細出力
python exploit.py -u https://craft.example.com -c "uname -a" -t 10 -v
ステップ1 ──► セッション確立
ホームページを取得 → PHPSESSIDクッキーを取得
ステップ2 ──► アセットID解決
-a フラグで指定 または ブルートフォース(404以外を検出)
ステップ3 ──► セッションポイズニング
悪意のあるGETリクエスト → /tmp/sess_<PHPSESSID> に生のPHPが注入
ステップ4 ──► RCEトリガー
細工されたデシリアライゼーションペイロード → PhpManagerがセッションファイルをインクルード
→ PHPが実行 → システムコマンドが実行 → 出力が返される
💡 コマンド出力は(最初の2,000文字)が表示されます。完全なインタラクションにはリバースシェルを推奨します。
requirements.txt
requests>=2.31.0
urllib3>=2.0
このツールは教育目的および許可されたセキュリティ評価のためのみを意図しています。
システム所有者から明示的な書面による許可なく、いかなるシステムに対しても使用しないでください。
作者は、このツールの誤用またはそれによって生じた損害について一切の責任を負いません。このソフトウェアを使用することにより、あなたは自己の行動に単独で責任を負い、適用されるすべての現地、国内、国際法を遵守することに同意したものとみなされます。
| 役割 | 詳細 |
|---|---|
| 🔍 CVE発見およびオリジナルエクスプロイト | Mohammed Idrees Banyamer |
| 🐙 GitHub | @TheMursalin |
| 🤝 コードの改善 | コミュニティからの貢献を歓迎します |
⭐ これが役に立ったと思ったら、さらなるエクスプロイト、writeup、セキュリティツールのために @TheMursalin をフォローすることを検討してください。
このプロジェクトは MITライセンス の下で公開されています。詳細は LICENSE ファイルを参照してください。
| フラグ | 説明 | デフォルト |
|---|
-u, --url | 必須. ターゲットのベースURL(例: https://example.com) | — |
-c, --cmd | 必須. 実行するシステムコマンド(例: id, whoami) | — |
-a, --asset | 既知の有効なアセットID(エクスプロイトを大幅に高速化) | なし |
--scan-max | IDが指定されていない場合にブルートフォースする最大アセットID | 300 |
-t, --timeout | リクエストのタイムアウト(秒) | 15 |
-v, --verbose | 詳細/デバッグ出力を有効化 | オフ |