CVE-2025-9859CVE-2025-9859是WordPress Fintelligence Calculator插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由Wordfence安全团队的安全研究员发现并报告,披露日期为2025年10月3日。该漏洞的CVSS 3.1评分为6.4分,属于中危级别。
Fintelligence Calculator是一款面向WordPress网站的金融计算器插件,允许网站管理员在其网站中嵌入各类金融计算工具。该插件通过短代码(shortcode)机制实现功能嵌入,管理员可以在页面或文章中通过[fintelligence-calculator]短代码调用计算器功能。
该漏洞的根本原因在于插件的短代码处理逻辑中对用户输入的属性参数缺乏充分的输入净化(input sanitization)和输出转义(output escaping)机制。具体而言,在src/inc/class-register-shortcodes.php文件的第93行附近,短代码属性的处理函数未能正确过滤恶意JavaScript代码,导致攻击者可以通过精心构造的短代码属性注入任意Web脚本。这些被注入的脚本会被持久化存储在WordPress数据库中,每当普通用户访问包含恶意短代码的页面时,恶意脚本将在受害者浏览器中自动执行。
由于该漏洞影响范围为所有1.0.3及以下版本,且WordPress插件生态系统中广泛使用短代码机制,因此该漏洞对使用Fintelligence Calculator插件的WordPress网站构成实质性安全威胁。
该漏洞的技术原理基于WordPress短代码(Shortcode)API的不安全使用。WordPress短代码是一种允许开发者创建自定义宏的机制,用户可以在文章内容中通过方括号语法(如[shortcode attr1="value1"])调用预注册的回调函数。
在Fintelligence Calculator插件1.0.3版本中,src/inc/class-register-shortcodes.php文件的第93行注册的短代码回调函数直接接收并处理用户提供的属性值,而未调用WordPress提供的安全函数(如wp_kses、esc_attr、esc_html、esc_url等)对输入进行净化或对输出进行转义。具体技术细节如下:
1. 短代码注册:插件通过add_shortcode()函数注册了'fintelligence-calculator'短代码,其回调函数负责解析传入的属性数组。
2. 属性处理缺陷:回调函数直接从$atts数组中提取属性值,未经过滤即用于HTML输出或属性注入。这使得攻击者可以在属性值中嵌入HTML标签和JavaScript事件处理器(如onerror、onload、onmouseover等)。
3. 持久化存储:由于WordPress默认将文章内容存储在数据库的wp_posts表中,攻击者通过贡献者(Contributor)权限提交的文章一旦发布,恶意脚本将永久存储在数据库中。
4. 触发执行:当任何用户(包括管理员)访问包含恶意短代码的文章页面时,WordPress渲染引擎会执行短代码回调函数,将未转义的恶意内容输出到HTML页面中,浏览器随即解析并执行其中的JavaScript代码。
利用条件方面,攻击者需要至少拥有WordPress贡献者级别的认证权限。贡献者角色可以创建和编辑文章,但不能直接发布(需要审核者或编辑批准),这意味着在某些配置下,恶意内容可能在审核流程中被发现。然而,一旦文章通过审核发布,所有访问该页面的用户都将受到攻击。