Vite CVE-2025-30208

漏洞简介

3 月 24 日,漏洞发现者在 GitHub 安全公告中披露了 Vite 存在的任意文件读取漏洞(漏洞编号:CVE-2025-30208,漏洞级别:高危),该漏洞源于Vite在其开发服务器模式下,提供了@fs机制,用于访问服务允许范围内的文件。对特定 URL 请求的路径校验不严格,导致可以通过在URL请求中添加特定参数(如?raw???import&raw??),绕过原有用于阻止越权访问的server.fs.deny访问限制,从而可能读取服务器上的任意文件,包括项目源码、敏感配置文件等,导致严重的数据泄露风险。

受影响版本

1
2
3
4
5
6
7
8
9
6.2.0 <= version <=6.2.2

6.1.0 <= version <=6.1.1

6.0.0 <= version <=6.0.11

5.0.0 <= version <=5.4.14

version <=4.5.9

修复建议

1
2
3
4
5
Vite >= 6.2.3
1.2 <= Vite < 6.2.0
0.12 <= Vite < 6.1.0
4.15 <= Vite < 6.0.0
5.10 <= Vite < 5.0.0

修复指南

1.优先升级到官方修复版本

2.确认当前Vite版本

项目下使用命令,或者直接查看package.json找到版本号

1
npm list vite

3.升级Vite

1
2
3
4
5
npm install vite@4.5.10 # 若之前使用的是 4.x 版本
npm install vite@5.4.15 # 若之前使用的是 5.x 版本
npm install vite@6.0.12 # 若之前使用的是 6.0.x 版本
npm install vite@6.1.2 # 若之前使用的是 6.1.x 版本
npm install vite@6.2.3 # 若之前使用的是 6.2.x 版本

4.再次验证保证Vite对于此漏洞修复

临时修复

1.移除 --host 参数

如果你在启动开发服务器时使用了 --host 参数,将其移除。例如,将启动命令从:

1
npx vite --host 0.0.0.0

改为:

1
npx vite

2.配置 server.host

若在 vite.config.jsvite.config.ts 中配置了 server.host,将其注释或修改为仅允许本地访问。

漏洞复现

1.安装Vite环境

创建一个项目文件夹,使用CMD

执行

1
npm create vite@latest test -y -- --template vue-ts

image-20250328084938374

会得到"vite": "^6.2.0",这里的^符号表示安装兼容的最新版本,它允许安装的版本在不改变主版本号的前提下,更新次版本号和补丁版本号。所以如果急着直接执行npm install,所安装的Vite版本会是不受影响的6.2.3。(其他受影响版本同理)。

这也是官方在依赖管理层面提供的一种便捷修补方式。

所以这里要进来修改package.json,把 ‘^’ 去掉

把它搞成受攻击的版本6.2.0

image-20250328085224706

image-20250328085553859

localhost:5173/@fs/C://windows/win.ini?import&raw??

image-20250328090245447

执行修复命令

1
npm install vite@6.2.3

修复后:image-20250328094258812

参考文章

Vite 任意文件读取漏洞分析复现 CVE-2025-30208-CSDN博客

Vite任意文件读取漏洞复现(CVE-2025-30208)

Vite存在CVE-2025-30208安全漏洞(附修复方案和演示示例) _ 潘子夜个人博客

Vite 任意文件读取漏洞分析复现 CVE-2025-30208-CSDN博客

Vite 任意文件读取漏洞分析复现(CVE-2025-30208) | 小艾博客

复现与修复指南:Vite任意文件读取漏洞(CVE-2025-30208) | CTF导航

Vite任意文件读取漏洞 (CVE-2025-30208) – 绿盟科技技术博客


Vite CVE-2025-30208
https://ydnd.github.io/2025/03/28/Vite-CVE-2025-30208/
Author
IE
Posted on
March 28, 2025
Licensed under