CVE-2025-11228CVE-2025-11228是WordPress流行捐赠插件GiveWP(Donation Plugin and Fundraising Platform)中存在的一个安全漏洞。该漏洞由WordFence安全团队的安全研究员发现并报告,CVSS评分为5.3分,属于中危级别漏洞。
GiveWP是WordPress上最受欢迎的在线捐赠和筹款平台插件之一,拥有超过10万次活跃安装,广泛应用于非营利组织、慈善机构和个人创作者的网站中。该插件允许网站管理员创建和管理捐赠表单、活动(Campaigns)以及接收在线捐款。
该漏洞的根本原因在于插件中的`registerAssociateFormsWithCampaign`函数缺少必要的能力检查(capability check)。在WordPress中,能力检查是确保只有具有相应权限的用户才能执行特定操作的关键安全机制。由于缺少这一检查,未认证的攻击者(无需任何WordPress账户)可以通过调用相关REST API端点,将任意捐赠表单与任意活动进行关联。
这种未授权的数据修改操作虽然不会直接泄露敏感信息或导致远程代码执行,但攻击者可以利用此漏洞篡改网站内容,破坏正常的捐赠流程,将用户引导至错误的捐赠表单,或通过恶意关联进行钓鱼攻击。此外,攻击者还可以利用此漏洞干扰网站管理员对捐赠活动的管理,造成业务混乱和声誉损害。该漏洞影响所有4.10.0及以下版本的GiveWP插件。
该漏洞的技术原理基于WordPress REST API的权限验证缺陷。GiveWP插件通过WordPress的REST API注册了一系列路由来处理捐赠表单和活动的管理操作,其中`registerAssociateFormsWithCampaign`函数负责将捐赠表单(Donation Forms)与活动(Campaigns)进行关联。
在正常的WordPress插件开发中,当注册REST API路由时,开发者需要通过`permission_callback`参数指定一个回调函数来验证当前用户是否具有执行该操作的权限。然而,GiveWP插件在该路由的实现中,未正确实现权限验证回调函数,导致任何未认证的用户都可以直接调用该API端点。
攻击利用方式如下:
1. 攻击者首先确定目标网站安装了GiveWP插件(可通过查看页面源码、REST API探测等方式)。
2. 攻击者构造一个针对`/wp-json/give/v1/donation-forms/associate-campaign`或类似REST API端点的POST请求。
3. 请求中包含目标捐赠表单ID和目标活动ID等参数。
4. 由于缺少权限验证,服务器直接处理该请求,将指定的捐赠表单与活动进行关联。
5. 攻击者可以重复此操作,将任意表单关联到任意活动,破坏网站正常的捐赠流程。
该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N,表明该漏洞可通过网络远程利用,攻击复杂度低,无需认证和用户交互,主要影响数据完整性。