Vite Windows系统路径绕过漏洞分析

本文详细分析了Vite构建工具在Windows系统中存在的安全漏洞CVE-2025-62522,攻击者可通过反斜杠绕过server.fs.deny配置限制,访问被拒绝的文件,影响多个Vite版本。

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)

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

参考链接

安全评分

CVSS总体评分

6.0(中等严重性)

CVSS v4基础指标

  • 攻击向量:网络
  • 攻击复杂度:低
  • 攻击要求:存在
  • 所需权限:无
  • 用户交互:被动

脆弱系统影响指标

  • 机密性:高
  • 完整性:无
  • 可用性:无

弱点分类

CWE-22:对路径名限制到受限目录的不当限制(路径遍历)

产品使用外部输入构建路径名,旨在识别位于受限父目录下的文件或目录,但产品未能正确中和路径名中的特殊元素,可能导致路径名解析到受限目录之外的位置。

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