CVE-2021-47932CVE-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网站。