CVE-2025-62421CVE-2025-62421是DataEase数据可视化与分析平台中的一个存储型跨站脚本(Stored XSS)漏洞,影响2.10.13及之前的所有版本。该漏洞源于平台对文件上传功能的验证不当以及权限校验机制的设计缺陷,导致攻击者可以绕过身份认证检查,上传包含恶意JavaScript代码的HTML文件到服务器。当其他用户访问这些被上传的恶意文件时,嵌入其中的恶意脚本将在受害者浏览器中执行,从而窃取用户会话、敏感信息或进行其他恶意操作。
DataEase是一款开源的数据分析和可视化平台,广泛应用于企业数据报表、业务仪表盘等场景。由于该平台通常部署在企业内部环境中,并涉及大量敏感业务数据的展示,一旦遭受XSS攻击,可能导致数据泄露、账户劫持等严重后果。该漏洞的CVSS评分为5.4,属于中危级别,攻击者需要低权限账户(如普通注册用户)即可发起攻击,且需要用户交互(如点击恶意链接或访问恶意页面)才能完全利用。漏洞已于2025年10月17日披露,官方在版本2.10.14中修复了该问题。
该漏洞的核心在于StaticResourceApi接口的文件上传路由设计与权限校验逻辑的缺陷。具体技术细节如下:
1. **可控的文件上传路径**:StaticResourceApi定义了一个路由 upload/{fileId},该路由使用URL路径参数,其中上传文件的文件名和扩展名均可由用户控制。攻击者可以通过构造特定的URL路径来指定任意文件名和扩展名。
2. **权限校验绕过机制**:在TokenFilter进行权限验证时,会调用 WhitelistUtils#match 方法来判断URL路径是否在白名单中。该方法存在逻辑缺陷——如果请求URI(requestURI)以 .js 或类似扩展名结尾,系统会直接判定该路径为安全资源,从而跳过权限检查。这意味着任何以 .js 结尾的URL都会被自动放行,无需通过正常的认证流程。
3. **扩展名混淆攻击**:攻击者可以利用上述缺陷,通过访问 upload/1.js 这样的路径来绕过权限验证,但在实际上传过程中指定任意文件扩展名(如 .html)。由于服务器在存储文件时使用的是用户控制的fileId参数,而权限检查仅基于URL路径的扩展名,导致服务器最终存储的是HTML文件而非JS文件。
4. **恶意脚本执行**:攻击者上传包含恶意JavaScript代码的HTML文件后,该文件被存储在服务器上。当其他用户通过浏览器访问该文件的URL时,浏览器会解析HTML内容并执行其中的恶意JavaScript,实现存储型XSS攻击。攻击者可利用此漏洞窃取用户Cookie、会话令牌,或执行其他客户端恶意操作。