CVE-2025-10167CVE-2025-10167是WordPress平台上一款名为Stock History & Reports Manager for WooCommerce插件中存在的存储型跨站脚本(Stored XSS)安全漏洞。该插件主要用于管理和报告WooCommerce商店的库存历史记录。该漏洞由WordPress安全团队[email protected]发现并报告,CVSS评分为6.4分,属于中危级别漏洞。
该漏洞存在于插件的短代码(shortcode)功能中,具体涉及`alg_wc_stock_snapshot_restocked`短代码。由于插件在处理用户提供的属性参数时缺乏充分的输入净化(input sanitization)和输出转义(output escaping)机制,攻击者可以通过精心构造恶意短代码属性,将任意JavaScript代码注入到页面中。这些恶意代码将被持久化存储在数据库中,每当普通用户访问包含该注入内容的页面时,恶意脚本就会自动执行。
漏洞的影响范围涵盖该插件的所有版本,最高至2.2.2版本(包括2.2.2)。由于该漏洞需要贡献者级别(contributor-level)及以上的认证权限才能利用,因此其威胁程度被评估为中危。然而,一旦被利用,攻击者可以窃取用户会话cookie、劫持管理员账户、进行钓鱼攻击或植入恶意软件,对WordPress网站的安全性构成严重威胁。
该漏洞的核心问题在于插件对短代码属性的处理逻辑存在缺陷。具体而言,在`class-alg-wc-stock-snapshot-shortcodes.php`文件的第174行附近,`alg_wc_stock_snapshot_restocked`短代码在处理用户输入的属性时,没有对这些属性值进行适当的HTML实体编码或JavaScript关键字过滤。
技术原理:
1. WordPress短代码机制允许通过方括号形式如[shortcode attr1="value1"]在文章或页面中嵌入动态内容。
2. 该插件的`alg_wc_stock_snapshot_restocked`短代码接受用户提供的属性参数。
3. 当贡献者级别的用户创建或编辑文章/页面时,可以在短代码属性中注入恶意JavaScript代码,例如:[alg_wc_stock_snapshot_restocked attr=""><script>alert('XSS')</script>]
4. 由于缺乏输出转义,这些恶意脚本被直接渲染到HTML页面中。
5. 当其他用户(包括管理员)访问包含此注入内容的页面时,注入的脚本将在受害者浏览器上下文中执行。
利用方式:
- 攻击者首先需要获取贡献者级别或更高权限的账户(可通过社会工程、弱密码爆破或购买等方式获得)。
- 登录后,攻击者创建新文章或编辑现有文章,在内容中插入包含恶意XSS负载的短代码。
- 提交文章后,恶意代码被存储到WordPress数据库中。
- 当管理员或其他用户预览或查看该文章时,恶意脚本自动执行,可用于窃取cookie、会话令牌或执行管理员权限的操作。