CVE-2025-4522CVE-2025-4522是WordPress平台IDonate献血管理系统插件中的一个高危安全漏洞。该插件版本2.0.0至2.1.9存在不安全的直接对象引用(Insecure Direct Object Reference, IDOR)缺陷,漏洞位于admin_post_donor_delete()函数中。攻击者通过构造恶意的HTTP请求,在user_id参数中指定任意用户ID值,即可调用WordPress内置的wp_delete_user()函数删除目标用户账户。值得注意的是,攻击者仅需拥有订阅者(Subscriber)级别的最低权限即可实施攻击,这意味着任何注册用户都可能利用此漏洞删除包括管理员在内的任意用户账户。此漏洞可能导致网站业务中断、用户数据丢失以及管理员账户被劫持等严重后果。由于该漏洞利用难度低、危害性大,建议所有使用受影响版本插件的用户立即采取修复措施。
该漏洞源于IDonate插件在处理用户删除请求时缺乏适当的权限验证和对象所有权检查。具体来说,admin_post_donor_delete()函数直接接受前端传来的user_id参数,并将其传递给WordPress核心函数wp_delete_user()进行用户删除操作,而未验证当前登录用户是否有权删除指定的用户账户。攻击者只需构造一个带有任意user_id值的POST请求(通过admin-post.php端点),目标URL类似:/wp-admin/admin-post.php?action=donor_delete&user_id=1(假设user_id=1通常是管理员)。由于插件使用WordPress的admin_post hook处理请求,但未实现足够的访问控制检查,导致任何认证用户(订阅者级别及以上)都能成功执行删除操作。漏洞代码位于src/Admin/Admin.php第75行和src/Helpers/DonorFunctions.php第658行。修复方案在版本2.1.10中通过增加权限验证和用户身份校验解决了这一问题。