CVE-2025-43822CVE-2025-43822是存在于Liferay Portal和Liferay DXP中的多个存储型跨站脚本(Stored XSS)漏洞。该漏洞的CVSS评分为5.4,属于中危级别。攻击者可以通过在条款与条件(Terms and Conditions)的名称(Name)文本字段中注入精心构造的恶意载荷来实现任意Web脚本或HTML代码的注入。具体而言,受影响的字段包括:(1)付款条款(Payment Terms);(2)查看订单页面上的交货条款(Delivery Term)。这些字段对用户输入缺乏充分的过滤和转义处理,导致恶意脚本被持久化存储在服务器端。当其他用户访问包含这些恶意数据的页面时,嵌入的脚本将在受害者浏览器中自动执行。由于漏洞需要低权限认证和用户交互才能触发,攻击者需要先获取一定的系统访问权限(如普通用户账号),然后通过提交包含恶意脚本的条款名称来实施攻击。成功利用此漏洞可能导致会话劫持、敏感信息窃取、钓鱼攻击或其他恶意行为,对系统的机密性和完整性造成损害。Liferay作为广泛使用的企业级门户平台,该漏洞可能影响大量部署了该产品的企业用户。
该漏洞的根因在于Liferay Portal和DXP在处理条款与条件(Terms and Conditions)相关数据时,未对用户输入的名称字段进行充分的HTML实体编码或过滤。具体技术原理如下:
1. **输入点**:系统提供了两个主要的输入点——付款条款(Payment Terms)和交货条款(Delivery Term)的名称文本字段。这些字段接受用户输入的文本内容,用于标识不同的商业条款。
2. **存储机制**:用户提交的条款名称数据未经适当转义即被存储到数据库中。攻击者可以提交包含恶意JavaScript代码或HTML标签的字符串作为条款名称,例如`<script>alert(document.cookie)</script>`或`<img src=x onerror=...>`。
3. **输出渲染**:当其他用户访问查看订单页面(view order page)时,系统从数据库中读取存储的条款名称数据,并将其直接渲染到HTML页面中。由于缺少上下文敏感的输出编码,浏览器将恶意脚本解释为可执行代码而非纯文本。
4. **触发条件**:攻击需要低权限用户(PR:L)提交恶意数据,同时需要受害者用户交互(UI:R)访问受影响的页面才能触发脚本执行。这使得漏洞利用需要社会工程学的配合。
5. **影响范围**:由于是存储型XSS,恶意脚本会在每个访问受影响页面的用户浏览器中执行,可能窃取会话Cookie、CSRF令牌,或执行未授权的操作。
CVSS向量表明该漏洞通过网络利用(AV:N),攻击复杂度低(AC:L),需要低权限(PR:L),需要用户交互(UI:R),作用域发生变化(S:C),对机密性和完整性有低影响,对可用性无影响。