CVE-2025-43829CVE-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平台的用户会话和数据安全。