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 为例:
- 正常情况下,访问 http://localhost:5173/@fs/tmp/secret.txt 会返回:
403 Restricted
The request url "/tmp/secret.txt" is outside of Vite serving allow list.
- 但在请求后面加上 ?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 安全漏洞的更多相关文章
- CVE爬虫抓取漏洞URL
String url1="http://www.cnnvd.org.cn/vulnerability/index/vulcode2/tomcat/vulcode/tomcat/cnnvdid ...
- Nagios ’status.cgi‘文件权限许可和访问控制漏洞
漏洞名称: Nagios ’status.cgi‘文件权限许可和访问控制漏洞 CNNVD编号: CNNVD-201307-013 发布时间: 2014-02-21 更新时间: 2014-02-21 危 ...
- Linux kernel 内存泄露本地信息泄露漏洞
漏洞名称: Linux kernel 内存泄露本地信息泄露漏洞 CNNVD编号: CNNVD-201311-467 发布时间: 2013-12-06 更新时间: 2013-12-06 危害等级: ...
- Linux kernel ‘xfs_attrlist_by_handle()’函数缓冲区溢出漏洞
漏洞名称: Linux kernel ‘xfs_attrlist_by_handle()’函数缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-392 发布时间: 2013-11-29 更新 ...
- Linux kernel AACRAID Driver Compat IOCTL 本地安全绕过漏洞
漏洞名称: Linux kernel AACRAID Driver Compat IOCTL 本地安全绕过漏洞 CNNVD编号: CNNVD-201311-390 发布时间: 2013-11-29 更 ...
- Linux Kernel 整数溢出漏洞
漏洞名称: Linux Kernel 整数溢出漏洞 CNNVD编号: CNNVD-201311-062 发布时间: 2013-11-07 更新时间: 2013-11-07 危害等级: 漏洞类型: ...
- Linux Kernel ‘drivers/staging/wlags49_h2/wl_priv.c’本地缓冲区溢出漏洞
漏洞名称: Linux Kernel ‘drivers/staging/wlags49_h2/wl_priv.c’本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-068 发布时间: 2 ...
- Linux Kernel ‘exitcode_proc_write()’函数本地缓冲区溢出漏洞
漏洞名称: Linux Kernel ‘exitcode_proc_write()’函数本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-061 发布时间: 2013-11-07 更新时 ...
- Linux Kernel ‘oz_cdev_write()’函数本地缓冲区溢出漏洞
漏洞名称: Linux Kernel ‘oz_cdev_write()’函数本地缓冲区溢出漏洞 CNNVD编号: CNNVD-201311-060 发布时间: 2013-11-07 更新时间: 201 ...
- Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞
漏洞名称: Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞 CNNVD编号: CNNVD-201311-054 发布时间: 2013-11-06 更新时间: 2013- ...
随机推荐
- Java 中toString方法在枚举中的应用:展示枚举字段信息
在Java编程中,枚举(enum)是一种特殊的数据类型,它允许程序员定义一组固定的常量.枚举类型在Java中非常有用,尤其是在需要表示一组固定选项(如星期.月份.方向等)时.尽管枚举类型在定义时看起来 ...
- Linux环境python3-pip安装指定源地址
# 新建配置文件 vim ~/.pip/pip.conf # 写入地址 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple [i ...
- WxPython跨平台开发框架之使用PyInstaller 进行打包处理
使用PyInstaller 打包Python项目是一个常见的需求,它可以将Python程序及其所有依赖项打包成一个独立的可执行文件或者安装文件,方便在没有安装Python环境的机器上运行.本随笔介绍W ...
- (三).NET6.0使用Autofac实现依赖注入
1.添加依赖注入的两个关键包 Autofac.Extensions.DependencyInjection 和 Autofac.Extras.DynamicProxy 2.在Program中添加Aut ...
- Solution Set - 多项式杂题
0. 「OurOJ #46942」/「51nod #1824」染色游戏 Private link & Submission. 首先,显然有 \[f(t)=\sum_{i=0}^t\bi ...
- jQuery详解
目录 jQueryJS中创建对象jQuery选择器jQuery 操作 DOMjQuery 事件jQuery 动画JSON :Python工具 - pipPython工具 - VirtualEnvWEB ...
- runoob-Docker 教程
https://www.runoob.com/docker/docker-tutorial.html Docker的应用场景 Web 应用的自动化打包和发布. 自动化测试和持续集成.发布. 在服务型环 ...
- 项目PMP之十三相关方管理
项目PMP之十三--相关方管理 一.定义: 核心理念: 每个项目都有相关方,他们会受项目的积极或消极影响,或者能对项目施加积极或消极的影响. 以相关方满意度作为项目目标进行识别和管理,并保持沟通, ...
- matlib:图像旋转-缩放
需求 使用MATLAB尝试完成一个自定义的图像攻击软件,功能描述: 1)根据输入参数,完成旋转功能 2)根据输入参数,完成缩放功能 开始 旋转 参数:参数为正,顺时针旋转:参数为负,逆时针旋转 主要代 ...
- 重写equals()方法(idea生成的高效方法)
equals 方法Object 类中的 equals 方法用于检测一个对象是否等于另外一个对象.在 Object 类中,这个方法将判断两个对象是否具有相同的引用.如果两个对象具有相同的引用, 它们一定 ...