前端构建工具 Vite 在 6.2.3 、6.1.2 、6.0.12 、5.4.15 及 4.5.10 之前的版本存在安全漏洞。
正常情况下 @fs 仅允许访问 Vite 服务白名单内的文件,但通过在 URL 后添加?raw??或?import&raw;??参数可绕过限制,返回目标文件内容(若存在)。
该漏洞成因在于多处代码虽移除了尾部分隔符(如?),但未在查询字符串正则表达式中进行相应处理,导致可读取任意文件内容并返回至浏览器。
仅当应用显式将 Vite 开发服务器暴露至网络(使用--host 参数或配置 server.host 选项)时才会受影响。该问题已在 6.2.3 、6.1.2 、6.0.12 、5.4.15 和 4.5.10 版本中修复。
黑客只需在 URL 中加上魔法咒语"?raw??"或"?import&raw;??",就能绕过 @fs 访问限制,轻松读取你的.env 、API 密钥、.bash_history 甚至那些"绝对不能让人看到"的配置文件!
没错,你的命令历史和各种密钥可能正在向陌生人招手!
将 Vite 升级到已修复的版本:6.2.3 、6.1.2 、6.0.12 、5.4.15 或 4.5.10
如非必要,不要使用--host
或server.host
配置选项将开发服务器暴露在网络上
![]() |
1
zeroskylian 4 天前
之前是 next 现在是 vite ,看来用前端开发服务器还是差点意思, 不是那么完美
|
2
zhengfan2016 4 天前 via iPhone ![]() 看清楚啊,是开发服务器,又不是生产服务器
@zeroskylian |
![]() |
3
zeroskylian 4 天前
@zhengfan2016 #2 刚上班, 脑子没转过来
![]() |
![]() |
4
wangtian2020 4 天前
多大点事儿
|
5
paopjian 4 天前
需要用 vite 做服务器,还要开放到公网, 不过这玩意是咋发现的, 真离谱
|
7
xuemian 4 天前
|
8
KinBob 4 天前
这个名字起的不好,有歧义
|
![]() |
9
Vegetable 4 天前
总有聪明的懒蛋觉得开发服务器也能用来部署
|
11
jenson47 4 天前
首先对外的服务器,第一件事就是对端口进行控制,最好就是能不暴露就不暴露,
如果只是内部使用,可以试试 零信任,或者 ssh 隧道。 开发的话,可以用 vscode 远程开发插件 |
![]() |
12
jaylee4869 4 天前
5 分,不太高。毕竟仅仅是 dev server 。真有小白用 dev server 作为 prod hosting 的话,只能说是 skill issue 了。
|
13
sn0wdr1am 4 天前
用的 Nuxt ,没发现这个问题。
|
![]() |
15
weijancc 4 天前
内容太夸张了, vite 都是本地开发用的, 根本没有什么隐患
|
![]() |
17
imba97 4 天前
@zeroskylian 笑死,刚上班的状态确实是这样的
|
![]() |
18
liubaicai 4 天前
哈哈,不排除有人用 vite 起个 npm run dev 跑服务
|
![]() |
19
dyq917 4 天前
屁大点儿事,一惊一乍,像个菜鸡
|
20
HTML001 4 天前
这玩意儿不是本地开发阶段才用的吗,有人把这个东西上生产?
|
![]() |
21
lp4298707 4 天前
什么鬼?意思是会有人在服务器上跑 npm run dev 供外网访问?
|
![]() |
23
tcper 4 天前
vite 这个基本没人 run dev 跑在服务器上,但是 nextjs 之前那个就是推荐 next start 这种命令跑在服务器上的
|
![]() |
24
leokun 4 天前
这还是有点影响的
有很多人都有公网 IP ,如果端口全漏, 在开发的时候一个不注意被人扫到就随便拿你电脑的文件了 而且 vite 有 nodejs api,这个可能有一些 node 服务会用到 https://cn.vite.dev/guide/api-javascript 也是很危险的 |