最近用Vite做开发的朋友们得注意了,这个热门的前端构建工具被曝出了一些安全漏洞,尤其是开发服务器(Vite Dev Server
)部分。
我先来跟大家聊聊这些漏洞是啥,怎么来的,升级到哪些版本能解决。
升级到安全版本
Vite团队反应挺快,2025年3月24日刚发了新补丁,建议大家直接上这些版本:
6.x
系列:6.2.3
、6.1.2
、6.0.12
5.x
系列:5.4.15
4.x
系列:4.5.10
往期精彩推荐
- 🍍Pinia党福音,🍍Pinia伴侣:🍍pinia-colada
- React 中使用 Vue3.6 Vapor 同款 Signal 是一种什么体验?🚀🚀🚀
- 2025年了,令人唏嘘的Angular,现在怎么样了🚀🚀🚀
- 文章同步在公众号:萌萌哒草头将军,欢迎关注!
漏洞有哪些?
1. CORS和WebSocket的"宽松"问题
简单说,就是 Vite
开发服务器在处理跨源请求和 WebSocket
连接时,有时候太"大手大脚"。
早期版本没严格校验请求来源(Origin
),结果随便哪个网站都能发请求过来,甚至拿到响应数据。这要是被坏人利用,可能就搞出跨站 WebSocket
劫持(CSWSH
)这种花样。
2. 文件系统访问被绕过
这个听着有点吓人------有人能通过特殊URL(比如加个双斜杠//
)钻空子,访问到开发服务器根目录外的文件。
尤其在Window
这种对大小写不敏感的系统上,更容易中招。
这问题跟 Vite
的文件访问限制(server.fs.deny
)没拦严实有关。
3. HTML注入,XSS的"老朋友"
如果项目里手动用了 server.transformIndexHtml
,而且没过滤好请求的URL
,坏人就能塞点恶意代码进来,搞出跨站脚本攻击(XSS
)。不过这得是特定配置(appType: 'custom'
)加上点了恶意链接才会触发。
4. esbuild依赖的"坑"
Vite
依赖的构建工具 esbuild
(0.24.2
及以下版本)也有问题,允许外部网站随便发请求到开发服务器。这纯属开发时的麻烦,生产环境没事,但谁也不想本地被搞乱吧。
5. 其他小麻烦
还有些零散的问题,比如 DOM Clobbering
(构建特定格式时可能出乱子),或者用 ?import&raw
参数不小心泄露文件内容。这些都跟配置和版本有关,升级就能少踩坑。
为啥会有这些漏洞?
其实大部分问题都出在开发服务器的设计和依赖上。Vite
为了开发方便,默认设置比较宽松,像 CORS
不严格、文件访问没锁死,都是为了让开发者少折腾。但这也给了漏洞可乘之机。加上依赖的 esbuild
没及时更新,就多了一层风险。好在这些基本只影响本地,生产构建没啥大问题。
升级命令:
bash
npm update vite
总结
虽然漏洞数量较多,但主要影响开发环境。官方响应迅速,建议开发者及时更新到安全版本!