最近用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
简单说,就是 Vite
开发服务器在处理跨源请求和 WebSocket
连接时,有时候太“大手大脚”。
早期版本没严格校验请求来源(Origin
),结果随便哪个网站都能发请求过来,甚至拿到响应数据。这要是被坏人利用,可能就搞出跨站 WebSocket
劫持(CSWSH
)这种花样。
这个听着有点吓人——有人能通过特殊URL(比如加个双斜杠//
)钻空子,访问到开发服务器根目录外的文件。
尤其在Window
这种对大小写不敏感的系统上,更容易中招。
这问题跟 Vite
的文件访问限制(server.fs.deny
)没拦严实有关。
如果项目里手动用了 server.transformIndexHtml
,而且没过滤好请求的URL
,坏人就能塞点恶意代码进来,搞出跨站脚本攻击(XSS
)。不过这得是特定配置(appType: 'custom'
)加上点了恶意链接才会触发。
Vite
依赖的构建工具 esbuild
(0.24.2
及以下版本)也有问题,允许外部网站随便发请求到开发服务器。这纯属开发时的麻烦,生产环境没事,但谁也不想本地被搞乱吧。
还有些零散的问题,比如 DOM Clobbering
(构建特定格式时可能出乱子),或者用 ?import&raw
参数不小心泄露文件内容。这些都跟配置和版本有关,升级就能少踩坑。
其实大部分问题都出在开发服务器的设计和依赖上。Vite
为了开发方便,默认设置比较宽松,像 CORS
不严格、文件访问没锁死,都是为了让开发者少折腾。但这也给了漏洞可乘之机。加上依赖的 esbuild
没及时更新,就多了一层风险。好在这些基本只影响本地,生产构建没啥大问题。
升级命令:
npm update vite
虽然漏洞数量较多,但主要影响开发环境。官方响应迅速,建议开发者及时更新到安全版本!
修复通知