
CVE-2025-2304のマスアサインメントによる権限昇格を実証するPoC。Camaleon CMSのユーザープロフィール更新時に、パスワードパラメータへrole属性を注入することで実行される。
このリポジトリは、Camaleon CMS(バージョン2.8.1より前)におけるMass Assignment脆弱性の機能的Proof of Concept(PoC)です。この脆弱性は、ユーザ管理モジュールのupdated_ajaxエンドポイントに存在し、アプリケーションがpasswordパラメータハッシュ内の機密属性を厳密にフィルタリングしないことに起因します。
プロフィール更新時にpasswordスコープ内にrole属性を注入することで、低権限ユーザが自身の権限を上書きしてadminステータスを取得できます。
この脆弱性は、Ruby on RailsコントローラにおけるStrong Parametersの設定ミスに起因します。アプリケーションがAJAX更新リクエストを処理する際、roleキーがユーザオブジェクトの属性に不適切にマージされます。
/admin/users/:id/updated_ajaxpassword[...]password[role]=adminrequests.Sessionを利用して認証から悪用フェーズまで状態を保持します。authenticity_tokenを抽出し、X-CSRF-Tokenヘッダと同期させて、RailsのAJAXセキュリティ要件を満たします。/admin/profile/editページを解析し、RESTfulエンドポイントに必要なuser[id]を動的に解決します。_method=patchオーバーライドを実装し、POSTを介したリソース更新に対するアプリケーションのルーティング要件を満たします。requestsbeautifulsoup4依存関係をインストール:
pip install -r requirements.txt
python3 main.py -u <target_url> --user <username> --password <password>
/admin/login): user[username]を使用して認証済みセッションを確立します。/admin/profile/edit): 一意のuser[id]と新しいauthenticity_tokenを抽出します。/admin/users/:id/updated_ajax): 注入ペイロードを送信します。エクスプロイトは、application/x-www-form-urlencoded形式のペイロードを以下の構造で使用します:
このツールは教育目的および許可されたペネトレーションテスト専用です。本番システムへの不正アクセスは違法です。
| パラメータ | 値 | 説明 |
|---|
_method | patch | Rails RESTメソッドオーバーライド |
authenticity_token | [Captured] | 同期されたCSRF保護 |
password[password] | [NewPassword] | パスワードスコープ検証に必須 |
password[role] | admin | 悪意のある注入 |