GiveWP 是 WordPress 最受欢迎的捐赠插件之一,拥有超过 100,000 个活跃安装。然而,这种广泛使用也使得它成为攻击者的目标。最近,安全研究人员发现了一个严重的漏洞,称为 CVE-2025-22777,这个漏洞具有 CVSS 9.8 分数,表明其严重性。
漏洞的来源
这个漏洞源自未经身份验证的 PHP 对象注入,这使得攻击者能够绕过安全机制并潜在地接管 WordPress 网站。具体来说,这个问题出在数据库中元数据的存储不安全上。攻击者可以通过输入混杂文本来绕过弱 regex 检查,存储恶意元数据并最终将其序列化,从而导致不受信任的对象注入。
影响范围
该漏洞影响 GiveWP 的版本 3.19.3 以下。安全研究人员 Ananda Dhakal 表示,序列化检查完全可以被绕过,因为弱 regex 检查无法有效处理字符串。攻击者可以在序列化 payload 之间输入一些无关文本,使得 regex 检查无效,并将恶意元数据存储在数据库中,这些元数据最终会被序列化。
攻击场景
该漏洞的关键攻击场景涉及到捐赠表单中的公司字段。当攻击者注入恶意 payload 时,它可以被存储为元数据,并在后续步骤中被序列化。这使得攻击者能够执行任意文件删除,包括 wp-config.php 文件。这种删除操作可能导致整个网站被接管和远程代码执行(RCE)。
修复措施
在发现漏洞后,GiveWP 团队迅速行动,发布了版本 3.19.4 来修复此问题。用户强烈建议立即更新到最新版本,以保护他们的网站免受此类攻击。
相关信息
此次发现的漏洞并非首次针对 GiveWP 的攻击。之前,CVE-2024-5932 也涉及到对表单参数(如 give-form-title 和 give_title)的不当验证。虽然该问题在版本 3.14.2 已经得到修复,但研究人员发现 regex 基于的序列化内容验证仍然可以被绕过。
Patchstack Alliance 成员 Edisc 从 Zalopay Security 可以通过注入特殊字符序列(如 %25F0%259F%2598%25BC)来绕过弱 regex 验证,证明了这种攻击的可行性。
总之,用户应高度重视此次更新,以确保他们的网站安全无忧。