
사용자 등록 및 멤버십 <= 5.1.5 - 인증되지 않은 관리자 승인 우회 ('action' 파라미터를 통한 권한 부여 누락)
| CVE ID | CVE-2026-6145 |
| CNA | Wordfence |
| 취약점 | 인가 누락 — 관리자 승인 우회 |
| CWE | CWE-862 (인가 누락) |
| CVSS 3.1 | 5.3 Medium (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) |
| 영향 | WordPress용 User Registration & Membership — 모든 버전 ≤ 5.1.5 |
| 패치됨 | 버전 > 5.1.5 |
| 연구자 | Anthony Cihan — Offensive Security Lead, Obviam |
| 공개 | Wordfence Responsible Disclosure Program |
| 게시일 | 2026-05-14 |
includes/class-ur-user-approval.php에 있는 is_admin_creation_process() 메서드는 새 등록을 관리자에 의한 생성으로 처리할지 여부를 결정하는 유일한 게이트입니다. 이 메서드가 true를 반환하면 두 가지 부작용이 발생합니다:
set_user_status()는 새 사용자의 상태를 승인됨으로 설정하여 보류 승인 대기열을 건너뜁니다.send_request_notification_to_admin()은 새 등록에 대한 관리자 알림 이메일을 차단합니다.5.1.5 버전에서 이 메서드 자체에는 인증, 인가 또는 nonce 검증이 포함되어 있지 않습니다:
// includes/class-ur-user-approval.php:459-461
protected function is_admin_creation_process() {
return ( isset( $_REQUEST['action'] ) && 'createuser' == $_REQUEST['action'] );
}
$_REQUEST는 $_GET, $_POST, $_COOKIE를 병합하기 때문에, 인증되지 않은 공격자는 등록 양식 제출 URL에 ?action=createuser를 추가하여 이 검사를 충족시킬 수 있습니다. 그러면 플러그인이 자동으로 계정을 승인하고 관리자에게 알리지 않습니다.
CVE-2026-6145는 구체적으로 is_admin_creation_process()의 인가 누락을 다루지만, 강화된 등록 양식에 대한 완전한 인증되지 않은 익스플로잇을 위해서는 동일한 플러그인 버전의 두 가지 부수적인 문제를 연결해야 하며, 포함된 PoC가 이 두 가지를 자동으로 처리합니다:
| 단계 | 문제 | 목적 |
|---|---|---|
| 1 | user_registration_get_recent_nonce wp_ajax_nopriv 엔드포인트를 통한 인증되지 않은 nonce 생성 (Referer만 확인) | 인증된 세션 없이 유효한 ur_frontend_form_nonce 획득 |
| 2 | 양식 핸들러에서 ur_fallback_submit이 비어 있지 않을 때 AJAX nonce 검사 우회 | 유효한 AJAX referer 없이 폴백 경로를 통해 등록 제출 |
| 3 | CVE-2026-6145 — $_REQUEST의 action=createuser가 is_admin_creation_process()를 true로 전환 | 새 계정 자동 승인 및 관리자 알림 차단 |
결과: 관리자 상호 작용이나 알림 없이 생성된 완전히 승인된 사용자 계정으로, 명시적으로 새 등록에 관리자 승인이 필요한 사이트에서 발생합니다.
requests 라이브러리data-form-id로 확인 가능)git clone https://github.com/<your-username>/CVE-2026-6145.git
cd CVE-2026-6145
pip install requests
python3 poc_admin_approval_bypass.py <target_url> <form_id>
예시:
python3 poc_admin_approval_bypass.py http://wp.example.lab 7
======================================================================
User Registration v5.1.4 - Admin Approval Bypass PoC
CVE: 2026-6145 | CWE-862
Affects: User Registration & Membership <= 5.1.5
======================================================================
[*] Target: http://wp.example.lab
[*] Form ID: 7
[*] STEP 1: Obtaining nonce via unauthenticated AJAX endpoint
[+] SUCCESS: Got valid nonce for form 7: a1b2c3d4e5
[*] STEP 2: Registering user with admin approval bypass
Username: poc_bypass_1747249200
Email: [email protected]
[+] Registration request processed (HTTP 200)
[*] STEP 3: Verifying user was created
[+] CONFIRMED: User 'poc_bypass_1747249200' exists in the database
======================================================================
RESULTS
======================================================================
Unauthenticated Nonce Generation: CONFIRMED
AJAX Nonce Bypass: CONFIRMED
Admin Approval Bypass (CVE-...): CONFIRMED
[!] User was created with AUTO-APPROVED status
[!] Admin was NOT notified of this registration
======================================================================
PoC 실행 후 wp-admin에 로그인하여 Users → All Users를 확인합니다:
관리자 승인을 원치 않는 계정 생성에 대한 주요 게이트로 사용하는 WordPress 사이트(멤버십 사이트, 게이트 커뮤니티, 내부 포털, B2B 플랫폼, 액세스 전 신원 확인이 필요한 모든 사이트)에서 이 취약점은 해당 제어를 조용히 무력화합니다. 구체적인 결과는 다음과 같습니다:
CVSS 점수는 무결성에만 영향을 미치지만(직접적인 데이터 기밀성 손실이나 서비스 중단 없음), 실제 영향은 영향을 받는 사이트가 승인 워크플로를 보안 경계로 얼마나 많이 의존하는지에 따라 달라집니다.
| 버전 | 상태 |
|---|---|
| ≤ 5.1.5 | 취약 |
| > 5.1.5 | 패치됨 |
Users → All Users를 감사하세요. 해당 관리자 알림 이메일이 없는 계정에 특히 주의하세요.취약한 메서드에는 기능 검사와 유효한 nonce가 모두 필요해야 합니다:
protected function is_admin_creation_process() {
return current_user_can( 'create_users' )
&& isset( $_REQUEST['action'] )
&& 'createuser' === $_REQUEST['action']
&& isset( $_REQUEST['_wpnonce_create-user'] )
&& wp_verify_nonce(
wp_unslash( $_REQUEST['_wpnonce_create-user'] ),
'create-user'
);
}
| 날짜 | 이벤트 |
|---|---|
| 2026-03-09 | 플러그인 v5.1.4의 공인 보안 감사 중 취약점 발견 |
| 2026-03-09 | Wordfence Responsible Disclosure Program에 초기 보고서 제출 |
| 2026-04-12 | Wordfence(CNA)에 의해 CVE-2026-6145 예약됨 |
| 2026-05-14 | 공급업체 패치 버전 게시; CVE-2026-6145 게시 |
| 2026-05-14 | 공개 권고와 함께 이 PoC 릴리스 |
이 플러그인의 인가 모델을 추적하는 연구자들은 다음에도 관심을 가질 수 있습니다:
register_member를 통한 인증 우회 (≤ 5.1.2)연구, 발견 및 PoC 개발:
Anthony Cihan Offensive Security Lead — Obviam
이 작업을 인용하는 경우 CVE-2026-6145를 Anthony Cihan / Obviam에 귀속하여 인용해 주십시오.
이 개념 증명은 방어 연구, 탐지 엔지니어링 및 공인된 보안 테스트 목적으로만 게시되었습니다. 다음을 지원하기 위한 것입니다:
원본 연구는 공인된 실험실 환경에서 서명된 계약 하에 수행되었으며, 공개 전에 Wordfence Responsible Disclosure Program을 통해 공급업체에 조정된 공개가 이루어졌습니다.
소유하지 않거나 명시적 서면 테스트 허가를 받지 않은 시스템에 대해 이 PoC를 실행하는 것은 미국 컴퓨터 사기 및 남용법(18 U.S.C. § 1030), 영국 컴퓨터 남용법 1990, EU Directive 2013/40/EU 및 대부분의 관할권에서 이에 상응하는 법률에 따라 불법입니다. 작성자와 Obviam은 이 코드의 오용에 대한 모든 책임을 부인합니다.
이 저장소를 사용함으로써 귀하는 본 약관을 읽고 이해했으며 동의했음을 인정하는 것입니다.
MIT License 하에 릴리스되었습니다. 위 크레딧 섹션에 따라 저작자 표시가 필요합니다.