CVE-2025-9858CVE-2025-9858是WordPress平台上一款名为Auto Bulb Finder的插件中存在的存储型跨站脚本(Stored XSS)安全漏洞。该插件主要用于帮助用户查找汽车灯泡型号,在WordPress网站中被广泛使用。根据安全研究人员[email protected]的披露,该漏洞存在于插件的'abf_vehicle'短代码(shortcode)中,影响该插件所有2.8.0及以下版本。
该漏洞的根本原因在于插件对用户输入的属性参数缺乏充分的输入净化(input sanitization)和输出转义(output escaping)处理。攻击者可以通过精心构造的短代码属性参数,将恶意的JavaScript代码注入到页面内容中。由于这是存储型XSS,恶意脚本会被持久化保存在目标网站的数据库中,每当有用户访问包含恶意代码的页面时,注入的脚本就会自动执行。
该漏洞的CVSS 3.1评分为6.4分,属于中危级别。攻击向量为网络攻击(AV:N),攻击复杂度低(AC:L),但需要低权限认证(PR:L),即需要贡献者(contributor)级别及以上的访问权限。用户无需进行任何交互(UI:N),漏洞利用的范围会发生变化(S:C),对机密性和完整性产生低影响(C:L/I:L),对可用性无影响(A:N)。这意味着虽然漏洞利用需要一定的权限,但一旦利用成功,影响范围可能波及所有访问受影响页面的用户。
该漏洞的技术原理基于WordPress短代码(shortcode)机制。Auto Bulb Finder插件注册了名为'abf_vehicle'的短代码,用于在页面或文章中展示汽车灯泡查找功能。当插件处理该短代码时,会读取用户通过短代码属性传入的参数值,并在页面上进行渲染输出。
漏洞的核心问题在于:插件在处理'abf_vehicle'短代码的属性参数时,没有对这些参数进行充分的HTML实体编码或转义处理。具体来说,插件使用了类似do_shortcode()的函数来处理短代码内容,但在输出用户提供的属性值时,没有调用WordPress提供的安全函数如esc_html()、esc_attr()或wp_kses_post()等进行转义。
攻击者可以利用这一缺陷,通过在短代码属性中注入恶意JavaScript代码,例如:[abf_vehicle model="<script>alert(document.cookie)</script>" year="2020"]。当该短代码被保存到文章或页面中后,由于缺乏输出转义,恶意脚本会原样输出到HTML页面中。当其他用户访问该页面时,浏览器会解析并执行注入的JavaScript代码。
利用条件方面,攻击者需要拥有WordPress网站的贡献者(contributor)级别或更高的访问权限。贡献者级别允许用户创建和编辑自己的文章,但通常不能直接发布文章。然而,即使文章处于待审核状态,在某些配置下预览功能也可能触发脚本执行。更严重的是,一旦恶意文章被管理员审核发布,所有访问该页面的用户都会受到攻击,包括管理员账户,这可能导致会话劫持、权限提升或其他更严重的攻击。