CVE-2025-10301CVE-2025-10301是WordPress FunKItools插件中存在的一个跨站请求伪造(CSRF)漏洞。该漏洞影响所有1.0.2及以下版本的FunKItools插件,由Wordfence安全团队的安全研究员发现并报告。FunKItools是一款用于WordPress网站的工具类插件,提供了多种实用功能。然而,该插件在实现saveFields()函数时存在严重的安全缺陷,缺少正确的一次性令牌(nonce)验证机制,导致未经身份验证的攻击者可以通过伪造请求来修改插件设置。
根据CVSS 3.1评分系统,该漏洞评分为4.3分,属于中等严重级别。攻击向量为网络攻击(AV:N),攻击复杂度低(AC:L),无需任何权限(PR:N),但需要用户交互(UI:R)。该漏洞主要影响数据的完整性(I:L),对机密性和可用性没有直接影响。攻击者需要诱骗已登录的管理员点击恶意链接或访问恶意页面,才能成功利用此漏洞。
尽管该漏洞需要用户交互才能触发,但由于WordPress管理员通常具有较高的权限,且CSRF攻击的隐蔽性较强,管理员很难察觉自己正在被攻击。一旦管理员在已登录状态下访问了攻击者构造的恶意页面,攻击者就可以利用管理员的权限修改插件配置,可能导致网站功能异常、信息泄露或为进一步攻击铺平道路。
该漏洞的核心问题在于FunKItools插件的saveFields()函数缺少正确的一次性令牌(nonce)验证机制。在WordPress中,nonce(number used once)是一种防止CSRF攻击的标准安全机制,通常通过wp_create_nonce()函数生成,并通过check_admin_referer()或wp_verify_nonce()函数进行验证。
根据参考链接中的源代码(plugins.trac.wordpress.org/browser/funkitools/trunk/includes/controllers/options/page.php的第59行),saveFields()函数在处理表单提交时,没有对传入的请求进行nonce验证。这意味着任何能够诱使已登录的管理员发起HTTP请求的恶意网站,都可以直接向目标站点的saveFields端点发送POST请求,而无需携带有效的nonce令牌。
攻击者利用此漏洞的典型方式如下:首先,攻击者构造一个包含恶意表单的HTML页面,该表单的action属性指向目标WordPress站点的saveFields端点,表单中包含攻击者希望修改的插件设置参数。然后,攻击者通过社会工程学手段(如钓鱼邮件、即时消息等)诱骗已登录的目标站点管理员访问该恶意页面。当管理员访问页面时,恶意表单会自动提交(或通过JavaScript自动触发),浏览器会自动携带管理员的会话cookie发送请求。由于目标站点的saveFields函数不验证nonce,请求会被成功处理,插件设置被恶意修改。
由于该漏洞允许未经身份验证的攻击者修改插件设置,攻击者可以篡改插件配置,可能导致网站显示异常内容、功能被禁用,或为后续更严重的攻击(如权限提升、数据泄露等)创造条件。