CVE-2025-11878CVE-2025-11878是WordPress平台上ST Categories Widget插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由Wordfence安全团队的安全研究员发现,并于2025年10月22日公开披露。该漏洞的CVSS 3.1评分为6.4分,属于中危级别。
ST Categories Widget是一款用于在WordPress网站中展示文章分类目录的Widget小工具插件,允许用户通过短代码(shortcode)的方式在页面或文章中插入分类列表。然而,该插件在1.0.0及之前所有版本中,对短代码属性的输入过滤和输出转义处理存在严重不足,未能对用户提交的属性值进行充分的清理和转义。
该漏洞允许具有Contributor(投稿者)级别及以上权限的认证攻击者,在文章或页面中注入恶意的JavaScript脚本代码。当其他用户(包括管理员)访问包含恶意代码的页面时,注入的脚本将在受害者浏览器中自动执行,可能导致会话劫持、权限提升、钓鱼攻击、数据窃取等一系列安全问题。由于WordPress网站的访问量通常较大,该漏洞一旦被利用,影响范围可能非常广泛。
该漏洞的核心问题在于ST Categories Widget插件的st-categories短代码实现中,对用户提供的属性参数缺乏充分的输入验证和输出转义机制。
从技术原理上看,WordPress的短代码机制允许插件注册自定义短代码标签,如[st-categories attribute="value"]。当插件处理这些短代码时,通常需要通过PHP函数(如shortcode_atts、extract等)解析属性值,并在最终输出到HTML页面时使用echo或print等函数渲染。
在存在漏洞的代码(st-categories-wp.php第176行附近)中,插件直接使用了用户提供的短代码属性值,而没有调用WordPress提供的安全函数进行转义处理,例如:
- 未使用esc_html()、esc_attr()、esc_url()等转义函数
- 未使用wp_kses()进行HTML内容过滤
- 未对用户输入进行严格的类型检查和白名单验证
攻击者可以利用这一缺陷,在短代码属性中注入类似"onmouseover='alert(document.cookie)'"或"<script>...</script>"等恶意内容。由于这是存储型XSS,恶意payload会被持久化保存在WordPress数据库的文章内容中,每当有用户访问该文章页面时,恶意脚本就会在用户浏览器上下文中执行。
由于漏洞利用需要Contributor级别权限(属于低权限认证要求),且无需用户交互(UI:N),同时攻击范围发生变化(S:C),因此CVSS评分达到6.4分。