CVE-2025-11804CVE-2025-11804是WordPress的JB News Ticker插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由Wordfence安全团队的研究员发现并报告,CVSS评分为6.4,属于中危级别。
JB News Ticker是一款用于在WordPress网站上展示新闻滚动条效果的插件,通过短代码(shortcode)方式嵌入到页面中。该插件在所有1.0及以下版本中均存在安全缺陷,具体表现为对短代码'id'属性的输入过滤和输出转义处理不足。
攻击者需要拥有Contributor(投稿者)及以上级别的WordPress账户权限才能利用此漏洞。一旦成功利用,攻击者可以在页面中注入任意恶意JavaScript脚本。当其他用户(包括管理员)访问包含恶意脚本的页面时,脚本将在受害者浏览器中自动执行,可能导致会话劫持、权限提升、钓鱼攻击、数据窃取等一系列安全问题。由于该漏洞属于存储型XSS,恶意代码会被持久化保存在数据库中,影响范围更广,危害更大。
该漏洞的核心问题在于JB News Ticker插件的'jbticker'短代码处理逻辑中,对'id'属性参数缺乏充分的输入净化(sanitization)和输出转义(escaping)机制。
在WordPress插件开发中,短代码(shortcode)允许开发者创建自定义的内容标签,如[jbticker id="1"]。插件通过register_shortcode()注册短代码处理函数,解析短代码属性后将其输出到页面。然而,JB News Ticker插件在处理'id'属性时,直接将用户输入的值嵌入到HTML输出中,而没有调用WordPress提供的安全函数如esc_attr()、esc_html()或wp_kses_post()等进行转义。
具体漏洞代码位于jb-plugin-hook.php文件的第36行和第45行附近。攻击者可以构造如下恶意短代码:
[jbticker id=""><script>alert('XSS')</script>"]
当该短代码被保存到文章或页面中后,恶意脚本将随页面内容一起存储到WordPress数据库。每当有用户访问该页面,浏览器将解析并执行嵌入的JavaScript代码。
由于该漏洞需要Contributor级别权限才能利用,攻击者首先需要获取或注册一个Contributor账户。在WordPress中,如果站点开放用户注册,攻击者可以自行注册获得该级别权限。随后,攻击者创建包含恶意短代码的文章,等待管理员审核发布(Contributor默认需要审核),或者利用其他已发布渠道注入恶意内容。