Vite允许通过反斜杠绕过server.fs.deny限制(Windows系统)
漏洞详情
摘要
通过server.fs.deny拒绝访问的文件,如果在URL以反斜杠结尾,且开发服务器在Windows上运行时,这些文件仍然会被发送。
影响范围
仅满足以下条件的应用程序会受到影响:
- 明确将Vite开发服务器暴露给网络(使用–host或server.host配置选项)
- 在Windows系统上运行开发服务器
受影响版本
-
= 7.1.0, <= 7.1.10
-
= 7.0.0, <= 7.0.7
-
= 6.0.0, <= 6.4.0
-
= 2.9.18, < 3.0.0
-
= 3.2.9, < 4.0.0
-
= 4.5.3, < 5.0.0
-
= 5.2.6, <= 5.4.20
已修复版本
- 7.1.11
- 7.0.8
- 6.4.1
- 5.4.21
技术细节
server.fs.deny可以包含匹配文件的模式(默认情况下包括.env、.env.、.{crt,pem}等模式)。这些模式可以通过使用反斜杠()来绕过。根本原因是fs.readFile(’/foo.png/’)会加载/foo.png文件。
概念验证(PoC)
|
|
参考链接
- https://github.com/vitejs/vite/security/advisories/GHSA-93m4-6634-74q7
- https://github.com/vitejs/vite/commit/f479cc57c425ed41ceb434fecebd63931b1ed4ed
- https://nvd.nist.gov/vuln/detail/CVE-2025-62522
安全评分
CVSS总体评分
6.0(中等严重性)
CVSS v4基础指标
- 攻击向量:网络
- 攻击复杂度:低
- 攻击要求:存在
- 所需权限:无
- 用户交互:被动
脆弱系统影响指标
- 机密性:高
- 完整性:无
- 可用性:无
弱点分类
CWE-22:对路径名限制到受限目录的不当限制(路径遍历)
产品使用外部输入构建路径名,旨在识别位于受限父目录下的文件或目录,但产品未能正确中和路径名中的特殊元素,可能导致路径名解析到受限目录之外的位置。