Vite CVE-2025-30208 安全漏洞

Vite CVE-2025-30208 安全漏洞

一、漏洞概述

CVE-2025-30208 是 Vite(一个前端开发工具提供商)在特定版本中存在的安全漏洞。此漏洞允许攻击者通过特殊的 URL 参数绕过对文件系统的访问限制,从而获取任意文件内容(包括非 Vite 服务目录范围外的文件)。

1. 漏洞原理

  • Vite 在开发服务器模式下提供了 @fs 用于访问服务允许范围内的文件。
  • 本应对超出范围的文件请求返回 403 Restricted;然而,在请求 URL 中添加 ?raw?? 或 ?import&raw?? 时,可以绕过原有检查。
  • 这是由于在多个处理环节中会移除类似 ? 的结尾分隔符,但并未在查询字符串的正则匹配中考虑这一点;攻击者可利用这一缺陷读取目标文件内容。

2. 漏洞影响

  • 在特定配置下,攻击者能够访问服务器上任意位置的文件(如 /tmp/secret.txt),并将内容返回给浏览器。
  • 仅在 显式暴露 Vite 开发服务器(如使用 --host 或在 server.host 中配置对外可访问)时,外部才可直接发起请求进行文件读取。
  • 如果文件中包含敏感数据(如凭据、配置等),则可能造成信息泄露。

二、受影响范围

1. 影响版本

根据官方与社区信息,以下 Vite 版本均存在该漏洞:

  • = 6.2.0, <= 6.2.2

  • = 6.1.0, <= 6.1.1

  • = 6.0.0, <= 6.0.11

  • = 5.0.0, <= 5.4.14

  • <= 4.5.9

更概括地说:6.2.3、6.1.2、6.0.12、5.4.15、4.5.10 之前的版本。

2. 修复版本

  • 6.2.3 及以上
  • 6.1.2
  • 6.0.12
  • 5.4.15
  • 4.5.10

仅上述版本及更高版本中已修复此漏洞。

3. 受影响部署方式

  • 在生产或外部环境运行 Vite Dev Server,并且使用 --host 或在 vite.config.js 中的 server.host 开启对外网可访问。

4. 不受影响场景

  • 在本地开发环境使用 Vite,不对外暴露端口;仅自己访问 localhost。
  • 已经将代码打包后交由 Nginx/Tomcat/Egg 等服务器代理,生产环境并无开启 Vite Dev Server。
  • 使用修复后的 Vite 版本。

三、漏洞成因

  • 核心问题:当请求 URL 带有 ?raw?? / ?import&raw?? 等结尾分隔符时,Vite 中移除 ? 等尾部分隔符的逻辑与查询字符串正则不匹配的处理不一致,导致访问超出允许列表的文件时的"403"限制被绕过。

四、漏洞利用示例

以官方 PoC 为例:

  1. 正常情况下,访问 http://localhost:5173/@fs/tmp/secret.txt 会返回:
html 复制代码
403 Restricted
The request url "/tmp/secret.txt" is outside of Vite serving allow list.
  1. 但在请求后面加上 ?import&raw??:
html 复制代码
curl "http://localhost:5173/@fs/tmp/secret.txt?import&raw??"

返回结果将是该文件的内容,例如:

html 复制代码
export default "top secret content\n"
//# sourceMappingURL=data:application/json;...

五、修复与缓解

1. 升级到安全版本

  • 立即升级到 Vite 6.2.3 / 6.1.2 / 6.0.12 / 5.4.15 / 4.5.10 或更高版本,以获取官方修补。

2. 临时措施

若暂时无法升级,可采取以下措施:

  • 不要在生产环境开放 Vite Dev Server 对外访问;仅在内网或本地使用。
  • 限制访问范围:在防火墙或 Nginx 层做 IP 限制,确保仅可信的 IP 可以访问。
  • 对路由请求进行严格检查:在代理层对包含 ?raw?? / ?import&raw?? 字样的请求进行拦截,阻断对 Vite Dev Server 的直连访问。

六、时间线(示例)

  • 2025-03-24:CVE-2025-30208 在 NVD 上公开
  • 2025-03-25:社区与官方确认影响版本及修补方式
  • 2025-03-26:Vite 发布多条 Commit 修复与对应 Advisory
  • 2025-03-27:修复版本(6.2.3、6.1.2 等)正式上线并通告用户升级

七、总结

CVE-2025-30208 展示了在前端开发服务器中安全控制的重要性------即便只是用于开发调试,也可能因意外暴露而导致信息泄露风险。

针对该漏洞,最安全的做法 是在生产环境避免直接使用 Vite Dev Server ,同时升级到官方修复版本。对于内网或测试场景,应确保只在可信网络中启用对外访问,或为 Vite Dev Server 配置更严格的访问限制。

  • 若仅在本地/开发环境使用 Vite:线上对外并没有 "Vite Dev Server",那么不会受到这个漏洞影响。
  • 若在生产环境也对外暴露 Vite Dev Server:才有必要升级到 Vite 的修复版本,或者至少确保不对外开放该调试服务。

参考链接

相关推荐
右子12 分钟前
微信小程序开发“闭坑”指南
前端·javascript·微信小程序
入秋25 分钟前
Three.js后期处理实战:噪点 景深 以及色彩调整
前端·javascript·three.js
Asort29 分钟前
JavaScript设计模式(七)——桥接模式:解耦抽象与实现的优雅之道
前端·javascript·设计模式
golang学习记31 分钟前
从0死磕全栈之Next.js 应用中的认证与授权:从零实现安全用户系统
前端
苏打水com37 分钟前
携程前端业务:在线旅游生态下的「复杂行程交互」与「高并发预订」实践
前端·状态模式·旅游
Darenm11139 分钟前
深入理解CSS BFC:块级格式化上下文
前端·css
Darenm1111 小时前
JavaScript事件流:冒泡与捕获的深度解析
开发语言·前端·javascript
@大迁世界1 小时前
第03章: Vue 3 组合式函数深度指南
前端·javascript·vue.js·前端框架·ecmascript
小白64021 小时前
前端梳理体系从常问问题去完善-框架篇(react生态)
前端·css·html·reactjs
Hy行者勇哥1 小时前
数据中台的数据源与数据处理流程
大数据·前端·人工智能·学习·个人开发