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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-5076 — Exploit de prueba de concepto para CVE-2026-5076 que demuestra la toma de control de una cuenta de administrador sin autenticación en ARMember Premium mediante inyección SQL y almacenamiento de la clave de restablecimiento de contraseña en texto plano. | Kitploit
Herramientas/GitHubGitHub/zycoder0day/cve-2026-5076
Ataques de ContraseñasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAutenticación
GitHubzycoder0day/cve-2026-5076

CVE-2026-5076

Exploit de prueba de concepto para CVE-2026-5076 que demuestra la toma de control de una cuenta de administrador sin autenticación en ARMember Premium mediante inyección SQL y almacenamiento de la clave de restablecimiento de contraseña en texto plano.

Ver Repositorio
55hace 4 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-2026-5076

ARMember Premium <= 7.3.1

Mecanismo inseguro de restablecimiento de contraseña → Toma de control total de la cuenta de administrador

Claves de restablecimiento de contraseña en texto plano almacenadas en la base de datos + Inyección SQL = Toma de control total del administrador


📋 Información de la vulnerabilidad

ElementoDetalle
CVE IDCVE-2026-5076
PluginARMember – Membership Plugin & Content Restriction
Versión afectadaPremium <= 7.3.1
Versión parcheada7.3.2
Puntuación CVSS9.8 Crítico
CWECWE-640: Weak Password Recovery
TipoMecanismo inseguro de restablecimiento de contraseña → Almacenamiento de clave en texto plano
Vector de ataqueRed / Remoto / No autenticado (mediante cadena de SQLi)
Instalaciones activas30,000+ (Premium)
DescubridorWordfence Threat Intelligence
Fecha de publicación3 de junio de 2026

CVE relacionadas (Mismo aviso)

CVETipoSeveridad
CVE-2026-5076Restablecimiento de contraseña inseguro — Almacenamiento de clave en texto plano9.8 Crítico
CVE-2026-5073Inyección SQL no autenticada (ORDER BY)9.8 Crítico
CVE-2026-5074Inyección SQL no autenticada (WHERE)9.8 Crítico

🎯 Resumen

Tres vulnerabilidades críticas en el plugin de WordPress ARMember Premium <= 7.3.1 que, al encadenarse, permiten la toma de control total de la cuenta de administrador sin autenticación:

  1. CVE-2026-5076 — La clave de restablecimiento de contraseña se almacena en texto plano en wp_usermeta (arm_reset_password_key), en lugar de estar cifrada como en el estándar de WordPress
  2. CVE-2026-5073 — Inyección SQL en el parámetro order del manejador AJAX arm_directory_paging_action()
  3. CVE-2026-5074 — Inyección SQL en el parámetro filter del manejador AJAX arm_directory_paging_action()

Consecuencia directa de CVE-2026-5076: cualquier persona con acceso de lectura a la base de datos (mediante SQLi, exposición de copias de seguridad, etc.) puede leer la clave de restablecimiento de contraseña en texto plano y usarla directamente para restablecer la contraseña de cualquier cuenta — sin necesidad de descifrarla.


🔬 Análisis técnico

Causa raíz #1: Almacenamiento de clave en texto plano (CVE-2026-5076)

WordPress estándar almacena la clave de restablecimiento de contraseña en la columna user_activation_key en forma cifrada usando wp_hash(). ARMember almacena una copia de la misma clave en wp_usermeta con la meta_key arm_reset_password_key — pero en TEXTO PLANO:```php // FILE: armember-membership/core/class.arm_member_forms.php // Fungsi: arm_lost_password_action()

// WordPress menyimpan HASHED key (aman) $key = wp_generate_password(20, false); $wp_key = $wpdb->get_var( $wpdb->prepare("SELECT user_activation_key FROM $wpdb->users WHERE user_login=%s", $user_login) );

// ARMember menyimpan PLAINTEXT key (VULNERABLE!) update_user_meta($user_id, 'arm_reset_password_key', $wp_key); // ^^^^^^ // Ini adalah key ASLI yang bisa langsung dipakai

**Problema crítico**: `$wp_key` aquí es la clave generada por `wp_generate_password(20, false)` — 20 caracteres alfanuméricos. WordPress aplica hash a esta clave antes de almacenarla en `user_activation_key`, pero ARMember la almacena **antes del hash** o guarda una copia separada que **no tiene hash**.

### Causa raíz #2: Error de persistencia de la clave

Cuando se llama a `get_password_reset_key()` (núcleo de WordPress), se genera y se aplica hash a una nueva clave. Sin embargo, esta función **NO actualiza** `arm_reset_password_key`:```php
// WordPress core: get_password_reset_key($user)
// - Generate key baru
// - Hash key → simpan di user_activation_key
// - Return key plaintext
// - TAPI: arm_reset_password_key TIDAK diupdate!

Como resultado, la clave antigua en texto plano se almacena permanentemente en arm_reset_password_key incluso después de que el usuario realice un restablecimiento de contraseña. Esta clave puede usarse repetidamente hasta que la metaclave se elimine explícitamente.

Causa raíz #3: Inyección SQL (CVE-2026-5073/5074)

El manejador AJAX arm_directory_paging_action() tiene verificación de nonce mediante arm_check_user_cap(), pero los parámetros order y filter entran directamente en la consulta SQL sin sanitizar:```php // FILE: armember-membership/core/class.arm_member_forms.php // Fungsi: arm_directory_paging_action()

// Nonce check (dibutuhkan nonce valid) $nonce_check = $this->arm_check_user_cap();

// ORDER BY injection — langsung ke SQL tanpa sanitasi! $orderby = "u.{$arm_member} {$order_dir}"; // $order_dir dari $_POST['order'] → LANGSUNG ke ORDER BY

// WHERE injection via filter if (!empty($filter)) { $where .= " AND " . $filter; // ← LANGSUNG concatenation! }

**Explotación de ORDER BY**: El parámetro `order` se inserta en la cláusula `ORDER BY` de SQL. Debido a que no hay saneamiento, un atacante puede inyectar una subconsulta:```sql
-- Payload SQLi via parameter order
ORDER BY u.ID ASC, IF(COND, 1, EXP(710))

-- COND = TRUE  → IF returns 1 → ORDER BY 1 → response normal (besar)
-- COND = FALSE → IF returns EXP(710) → MySQL overflow ERROR → response 90B

Este Oracle es inmune a la latencia de red porque distingue TRUE/FALSE según error vs éxito, no el tiempo de respuesta.


⛓️ Hoja de ruta de la cadena de ataque```

╔══════════════════════════════════════════════════════════════════════════════════╗ ║ CVE-2026-5076 FULL CHAIN ATTACK ROADMAP ║ ║ ARMember Premium <= 7.3.1 → Unauthenticated Admin Takeover ║ ╚══════════════════════════════════════════════════════════════════════════════════╝

Descargar herramienta