# Vite Windows 强制拒绝绕过漏洞
## 概述
Vite 是一个面向前端开发的工具框架。在其多个版本中存在一个安全漏洞,导致当开发服务器运行在 Windows 上时,本应被 `server.fs.deny` 配置阻止访问的文件仍可能被访问,前提是请求的 URL 以反斜杠 `\` 结尾。
## 影响版本
受影响的版本包括:
- 2.9.18 ≤ version < 3.0.0
- 3.2.9 ≤ version < 4.0.0
- 4.5.3 ≤ version < 5.0.0
- 5.2.6 ≤ version < 5.4.21
- 6.0.0 ≤ version < 6.4.1
- 7.0.0 ≤ version < 7.0.8
- 7.1.0 ≤ version < 7.1.11
## 细节
当 Vite 的开发服务器运行在 Windows 上且 URL 以 `\` 结尾时,`server.fs.deny` 配置未能正确阻止指定文件的访问,导致潜在的文件泄露。
## 影响
此问题仅影响以下条件同时满足的应用:
- 明确将 Vite 开发服务器暴露到网络中
- 在 Windows 上运行开发服务器
## 修复版本
该漏洞已在以下版本中修复:
- 5.4.21
- 6.4.1
- 7.0.8
- 7.1.11
是否为 Web 类漏洞: 是
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|---|---|---|
| 1 | Vite is a frontend tooling framework for JavaScript.In versions from 2.9.18 to before 3.0.0, 3.2.9 to before 4.0.0, 4.5.3 to before 5.0.0, 5.2.6 to before 5.4.21, 6.0.0 to before 6.4.1, 7.0.0 to before 7.0.8, and 7.1.0 to before 7.1.11, files denied by server.fs.deny were sent if the URL ended with \ when the dev server is running on Windows. Only apps explicitly exposing the Vite dev server to the network and running the dev server on Windows were affected. This issue has been patched in versions 5.4.21, 6.4.1, 7.0.8, and 7.1.11. | https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2025/CVE-2025-62522.yaml | POC详情 |
标题: `server.fs.deny` bypassed with `\` on Windows · Advisory · vitejs/vite · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
### 关键漏洞信息
#### 漏洞标题
`server.fs.deny` bypassed with `\` on 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
#### 描述
当在Windows上运行开发服务器时,如果URL以`\`结尾,`server.fs.deny`拒绝的文件会被访问。
#### 影响范围
- 明确将Vite开发服务器暴露在网络中(使用`--host`或`server.host_config_option`)
- 在Windows上运行开发服务器
#### 细节
`server.fs.deny`可以包含与文件匹配的模式(默认包括`.env`, `.env.*`, `*.{crt,pem}`等)。这些模式可以通过使用反斜杠`\`来绕过。根本原因是`fs.readFile('./foo.png/')`加载了`/foo.png`。
#### PoC
```bash
npm create vite@latest
cd vite-project/
cat "secret" > .env
npm install
npm run dev
curl -I --request-target /\.env\ http://localhost:5173
```
#### 严重性
- CVSS v4 base metrics: 6.0 / 10
- 攻击向量: 网络
- 攻击复杂度: 低
- 攻击要求: 存在
- 特权要求: 无
- 用户交互: 被动
- 机密性影响: 高
- 完整性影响: 无
- 可用性影响: 无
#### CVE ID
CVE-2025-62522
#### 报告者和审查者
- 报告者: minhnb11
- 修复审查者: bluvvy
标题: fix(dev): trim trailing slash before `server.fs.deny` check (#20968) · vitejs/vite@f479cc5 · GitHub -- 🔗来源链接
标签:x_refsource_MISC
神龙速读:
### 关键信息
- **漏洞类型**: 文件路径处理不当,可能导致路径遍历攻击。
- **修复措施**:
- 在 `isFileLoadingAllowed` 函数中,移除了对文件路径末尾斜杠的检查。
- 新增代码将文件路径末尾的斜杠去除后再进行安全检查。
- **受影响文件**:
- `packages/vite/src/node/server/middlewares/static.ts`
- `playground/fs-serve/__tests__/fs-serve.spec.ts`
- **测试用例更新**:
- 添加了针对不同路径格式(如以斜杠结尾、包含双斜杠等)的测试用例,确保请求被正确拒绝。
- **提交信息**:
- 提交ID: f479cc5
- 提交者: sapphi-red
- 提交时间: 16小时前
- 相关Issue: #20908
- 版本: v7.1.11
暂无评论