在 vite 捆绑脚本中发现 DOM Clobbering 小工具,可导致 Vite 中出现 XSS(CVE-2024-45812)

admin 2024-09-19 12:55:15 Ali_nvd 来源:ZONE.CI 全球网 0 阅读模式
在 vite 捆绑脚本中发现 DOM Clobbering 小工具,可导致 Vite 中出现 XSS(CVE-2024-45812)

CVE编号

CVE-2024-45812

利用情况

暂无

补丁情况

N/A

披露时间

2024-09-18
漏洞描述
Vite 是一个用于 JavaScript 的前端构建工具框架。在使用 Vite 构建脚本至 `cjs`/`iife`/`umd` 输出格式时,发现了 Vite 受到 DOM Clobbering 漏洞的影响。模块中的 DOM Clobbering 组件可能导致网页中存在跨站脚本攻击(XSS),其中涉及无脚本的、攻击者控制的 HTML 元素(例如带有未净化名称属性的 img 标签)。DOM Clobbering 是一种代码重用攻击,攻击者首先在网页中嵌入非脚本、看似无害的 HTML 标记(例如通过帖子或评论),并利用现有 JavaScript 代码中的组件将其转换为可执行代码。我们已经确定了 Vite 捆绑脚本中的 DOM Clobbering 漏洞,特别是在脚本动态从资产文件夹导入其他脚本,并且开发者将构建输出格式设置为 `cjs`、`iife` 或 `umd` 时。在这些情况下,Vite 使用 `document.currentScript` 获取的 URL 替换以 `__VITE_ASSET__` 开头的相对路径。然而,这种实现容易受到 DOM Clobbering 攻击。`document.currentScript` 的查找可以通过浏览器命名的 DOM 树元素访问机制被攻击者遮蔽。这种操作允许攻击者用恶意 HTML 元素替换意图的脚本元素。当这发生时,攻击者控制的元素的 src 属性被用作导入脚本的 URL,可能导致从攻击者控制的服务器动态加载脚本。这种漏洞可能导致对包含 Vite 捆绑文件(配置为输出格式为 `cjs`、`iife` 或 `umd`)的网站进行跨站脚本(XSS)攻击,并允许用户注入某些无脚本 HTML 标签,而无需适当净化名称或 id 属性。此问题已在版本 5.4.6、5.3.6、5.2.14、4.5.5 和 3.2.11 中得到修复。建议用户进行升级。目前尚无已知的解决方案来规避此漏洞。
解决建议
"将组件 vite 升级至 5.2.14 及以上版本""将组件 vite 升级至 4.5.4 及以上版本"
参考链接
https://github.com/vitejs/vite/commit/ade1d89660e17eedfd35652165b0c26905259fad
https://github.com/vitejs/vite/security/advisories/GHSA-64vr-g452-qvp3
https://github.com/webpack/webpack/security/advisories/GHSA-4vvj-4cpr-p986
https://research.securitum.com/xss-in-amp4email-dom-clobbering
https://scnps.co/papers/sp23_domclob.pdf
CVSS3评分 N/A
  • 攻击路径 N/A
  • 攻击复杂度 N/A
  • 权限要求 N/A
  • 影响范围 N/A
  • 用户交互 N/A
  • 可用性 N/A
  • 保密性 N/A
  • 完整性 N/A
N/A
CWE-ID 漏洞类型
CWE-79 在Web页面生成时对输入的转义处理不恰当(跨站脚本)
- avd.aliyun.com
weinxin
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论:0   参与:  0