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 会返回:
403 Restricted
The request url "/tmp/secret.txt" is outside of Vite serving allow list.
  1. 但在请求后面加上 ?import&raw??:
curl "http://localhost:5173/@fs/tmp/secret.txt?import&raw??"

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

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 的修复版本,或者至少确保不对外开放该调试服务。

参考链接

Vite CVE-2025-30208 安全漏洞的更多相关文章

  1. CVE爬虫抓取漏洞URL

    String url1="http://www.cnnvd.org.cn/vulnerability/index/vulcode2/tomcat/vulcode/tomcat/cnnvdid ...

  2. Nagios ’status.cgi‘文件权限许可和访问控制漏洞

    漏洞名称: Nagios ’status.cgi‘文件权限许可和访问控制漏洞 CNNVD编号: CNNVD-201307-013 发布时间: 2014-02-21 更新时间: 2014-02-21 危 ...

  3. Linux kernel 内存泄露本地信息泄露漏洞

    漏洞名称: Linux kernel 内存泄露本地信息泄露漏洞 CNNVD编号: CNNVD-201311-467 发布时间: 2013-12-06 更新时间: 2013-12-06 危害等级:    ...

  4. Linux kernel ‘xfs_attrlist_by_handle()’函数缓冲区溢出漏洞

    漏洞名称: Linux kernel ‘xfs_attrlist_by_handle()’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-392 发布时间: 2013-11-29 更新 ...

  5. Linux kernel AACRAID Driver Compat IOCTL 本地安全绕过漏洞

    漏洞名称: Linux kernel AACRAID Driver Compat IOCTL 本地安全绕过漏洞 CNNVD编号: CNNVD-201311-390 发布时间: 2013-11-29 更 ...

  6. Linux Kernel 整数溢出漏洞

    漏洞名称: Linux Kernel 整数溢出漏洞 CNNVD编号: CNNVD-201311-062 发布时间: 2013-11-07 更新时间: 2013-11-07 危害等级:    漏洞类型: ...

  7. Linux Kernel ‘drivers/staging/wlags49_h2/wl_priv.c’本地缓冲区溢出漏洞

    漏洞名称: Linux Kernel ‘drivers/staging/wlags49_h2/wl_priv.c’本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-068 发布时间: 2 ...

  8. Linux Kernel ‘exitcode_proc_write()’函数本地缓冲区溢出漏洞

    漏洞名称: Linux Kernel ‘exitcode_proc_write()’函数本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-061 发布时间: 2013-11-07 更新时 ...

  9. Linux Kernel ‘oz_cdev_write()’函数本地缓冲区溢出漏洞

    漏洞名称: Linux Kernel ‘oz_cdev_write()’函数本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-060 发布时间: 2013-11-07 更新时间: 201 ...

  10. Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞

    漏洞名称: Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞 CNNVD编号: CNNVD-201311-054 发布时间: 2013-11-06 更新时间: 2013- ...

随机推荐

  1. 如何快速的开发一个完整的iOS直播app(搭建Socket即时通讯服务器)

    在直播中,聊天和发礼物,需要用到及时通讯技术,市面上的App大多数采用的都是第三方SDK,融云,环信等,但是本例子采用websocket搭建及时通讯服务器. 即时通讯 即时通讯(Instant mes ...

  2. R语言学习数据挖掘

    1.用R计算数据基本统计量(均值) 学习机器学习和数据挖掘中的各种算法和模型,需要掌握统计学的基本概念.统计学是通过搜索.整理.分析数据等手段,以达到推断所测对象的本质,并预测对象未来走势的一门综合性 ...

  3. nginx平台初探-4

    模块开发高级篇(30%)   变量(80%)   综述 在Nginx中同一个请求需要在模块之间数据的传递或者说在配置文件里面使用模块动态的数据一般来说都是使用变量,比如在HTTP模块中导出了host/ ...

  4. w3cschool-Groovy 教程

    Groovy的特点 Groovy中有以下特点: 同时支持静态和动态类型. 支持运算符重载. 本地语法列表和关联数组. 对正则表达式的本地支持. 各种标记语言,如XML和HTML原生支持. Groovy ...

  5. 浅说 c++20 coroutine

    浅说cppcoro 上一篇<浅说c/c++ coroutine>介绍了stackful协程,举了win32 Fiber跟tencent/libco为例. 本篇https://www.cnb ...

  6. uni-app消息提示框

    这个组件在界面==>交互反馈中 经常使用的哈: 特别注意:如果值title太长了,可能就一个值都不会显示 1.提示信息:可以用于操作某一项提示用户是否成功: uni.showToast({ ti ...

  7. 手把手教你编写自定义Categraf插件

    本文分享自天翼云开发者社区<手把手教你编写自定义Categraf插件>,作者:任****佳 Categraf 是一个监控采集 Agent,类似 Telegraf.Grafana-Agent ...

  8. oracle 常用函数2

    1.ASCII 2 2.CHR. 2 3.CONCAT. 2 4.INITCAP. 2 5.INSTR(C1,C2,I,J) 3 6.LENGTH *. 3 7.LOWER. 3 8.UPPER. 3 ...

  9. 5.main.js配置

    1.根目录新建api文件夹 api文件夹分mock(存放虚拟json)和urls(api请求链接) urls 中新建index.js来汇总按分类拆分的url请求文件     2.添加api配置 imp ...

  10. 推荐一款人人可用的开源 BI 工具,更符合国人使用习惯的数据可视化分析工具,数据大屏开发神器!

    前言 今天大姚给大家推荐一款人人可用的开源.免费的 BI 工具,更符合国人使用习惯的数据可视化分析工具,数据大屏开发神器,Tableau.帆软的开源替代:DataEase. 工具介绍 DataEase ...