GiveWP插件中发现了一个严重漏洞,该插件是WordPress中使用最广泛的在线捐款和筹款工具之一。该漏洞被跟踪为 CVE-2025-22777,CVSS 得分为 9.8,表明其严重性。
GiveWP 插件的活跃安装量超过 100,000 个,为全球无数的捐赠平台提供了支持。正如其 WordPress 插件页面所指出的,“GiveWP 是 WordPress 上评分最高、下载量最大、支持最完善的捐赠插件。无论您需要的是一个简单的捐赠按钮,还是一个专为在线捐赠优化的功能强大的捐赠平台,GiveWP 都能满足您的需求。”
然而,GiveWP 的流行也使其成为攻击者的目标,导致多年来发现了多个漏洞。
最新的漏洞(CVE-2025-22777)源于未经验证的 PHP 对象注入,允许攻击者绕过安全机制,并有可能接管 WordPress 网站。该漏洞是由于数据库中的元数据存储不安全,可被恶意反序列化。
根据 Patchstack 安全研究员 Ananda Dhakal 的报告,该漏洞存在于 GiveWP 3.19.3 及以下版本中。Dhakal 解释说:“由于对字符串的 regex 检查较弱,整个序列化检查是可以绕过的。攻击者可以在序列化有效载荷之间输入胡言乱语的文本,从而使 regex 检查失效,并将恶意元数据存储到最终会被反序列化的数据库中。”
这不是 GiveWP 第一次遇到此类漏洞。该问题基于之前的一个漏洞 CVE-2024-5932,该漏洞涉及对 give-form-title 和 give_title 等表单参数的不当验证。虽然在 3.14.2 版中已对此进行了修补,但研究人员发现基于 regex 的序列化内容验证仍有可能被绕过。
来自 Zalopay Security 的 Patchstack 联盟成员 Edisc 通过注入特殊字符序列(如 %25F0%259F%2598%25BC)绕过了弱 regex 验证,从而利用了该漏洞。
关键的漏洞利用场景涉及捐款表单中的公司字段。一旦注入恶意有效载荷,它就会被存储为元数据,随后被反序列化,从而使攻击者能够执行任意文件删除,包括 wp-config.php 文件。这种删除可能导致全站接管和远程代码执行(RCE)。
GiveWP 团队已迅速采取行动解决该漏洞,发布了 3.19.4 版本以修复该问题。我们强烈建议用户立即更新到最新版本,以保护他们的网站。