CVE-2025-12634Refund Request for WooCommerce是WordPress平台上广受欢迎的一款退款请求管理插件,专门用于处理WooCommerce商店的退款申请。该插件为电商网站提供了便捷的退款流程管理功能,允许管理员和客户提交、查看和处理退款请求。然而,在1.0及以下所有版本中,该插件存在一个严重的安全漏洞:由于'update_refund_status'函数缺少权限检查(Missing Capability Check),任何已认证用户,包括最低权限的订阅者(Subscriber)角色,都可以调用该函数修改退款状态,将退款请求标记为已批准或已拒绝。这意味着具有基本账户访问权限的攻击者可以滥用退款系统,未经授权地批准或拒绝退款请求,可能导致财务损失、客户服务混乱或欺诈行为。该漏洞的CVSS评分为4.3,属于中等严重程度,但由于攻击复杂度低且无需特殊权限,对使用该插件的电商网站构成实际威胁。
该漏洞的根本原因在于WordPress插件在实现退款状态更新功能时,未正确实施基于角色的访问控制(RBAC)。具体来说,'update_refund_status'函数直接处理退款状态的修改请求,但缺少current_user_can()或类似的能力检查(capability check)。在WordPress权限模型中,不同用户角色拥有不同的能力(capabilities),例如订阅者(Subscriber)角色通常仅具有read能力,无法执行管理操作。由于缺少此检查,攻击者可以构造恶意请求直接调用该函数。攻击者需要拥有一个有效的WordPress账户(即使是最低权限的订阅者账户),然后通过WordPress REST API或admin-ajax.php端点发送修改退款状态的请求。请求中包含目标退款请求ID和新的状态值(如'approved'或'rejected')。由于服务器端未验证请求者是否具有管理退款的权限,请求将被成功处理。攻击者可以利用此漏洞批量修改退款状态,导致退款流程混乱或实施退款欺诈。