CVE-2025-12877IDonate是一款WordPress血液捐赠请求和捐赠者管理系统插件。该插件在2.1.15及之前版本中存在严重的越权访问漏洞。由于panding_blood_request_action()函数缺少权限检查,攻击者可以在未登录或无任何权限的情况下调用该函数,实现对任意文章的删除操作。此漏洞影响所有使用该插件的WordPress网站,攻击者可通过自动化工具批量利用此漏洞删除网站内容,可能导致业务中断、数据丢失等严重后果。此外,CVE-2025-67583可能与该漏洞重复。漏洞已于2025年11月22日披露,开发者已发布修复版本。
漏洞根源在于IDonate插件的IDonateAjaxHandler.php文件中的panding_blood_request_action()函数。该函数在处理待处理血液请求时,直接调用WordPress的wp_delete_post()函数删除文章,但未对请求者进行任何权限验证。正常情况下,删除文章的API端点应检查当前用户是否具有delete_postCapability。但该函数仅检查请求是否为AJAX请求,缺少current_user_can()权限验证。攻击者只需构造一个POST请求到wp-admin/admin-ajax.php端点,设置action参数为panding_blood_request_action,并提供目标文章ID,即可删除任意文章。由于该函数未使用wp_nonce_verify()进行CSRF Token验证,攻击可在用户不知情的情况下完成。修复版本2.1.16增加了current_user_can('delete_posts')权限检查。