编辑
2025-06-06
默认分类
00

目录

Vite 任意文件读取漏洞(CVE-2025-31486)分析与修复方案
漏洞概述
漏洞验证
修复方案
1. 升级至安全版本(推荐)
2. 临时缓解措施(若无法立即升级)
3. 检查依赖项
漏洞影响验证
注意事项
参考链接

Vite 任意文件读取漏洞(CVE-2025-31486)分析与修复方案

漏洞概述

  • 漏洞名称:Vite 任意文件读取漏洞(CVE-2025-31486)
  • 影响范围:Vite 6.2.4、6.1.3、6.0.13、5.4.16 及 4.5.11 之前的版本
  • 漏洞类型:高危(可导致服务器敏感文件泄露)
  • 攻击方式:攻击者可利用 ?inline&import?raw?import 绕过文件读取限制,读取服务器上的任意文件(如配置文件、环境变量等)。
  • 受影响场景:仅当 Vite 开发服务器被显式暴露在公网(使用 --hostserver.host 配置)时才会受此漏洞影响。

漏洞验证

如果你的项目使用了 Vite,可以通过以下方式检查是否受影响:

  1. 检查 Vite 版本

    bash
    npm list vite

    或查看 package.json 中的 vite 版本。

  2. 检查是否暴露公网

    • 检查 vite.config.js 是否包含:
      js
      server: { host: true, // 或指定 0.0.0.0 }
    • 检查启动命令是否包含 --host
      bash
      vite --host

修复方案

1. 升级至安全版本(推荐)

官方已发布修复版本,请升级至以下或更高版本:

受影响版本安全版本
Vite 6.x≥ 6.2.5
Vite 5.x≥ 5.4.17
Vite 4.x≥ 4.5.12

升级命令

bash
npm install vite@latest # 或指定版本 npm install vite@6.2.5

2. 临时缓解措施(若无法立即升级)

  • 禁用公网访问

    • 移除 vite.config.js 中的 host: truehost: '0.0.0.0' 配置。
    • 避免使用 vite --host 启动开发服务器。
  • 限制访问 IP

    • 使用防火墙(如 ufwiptables)或云安全组策略,仅允许可信 IP 访问开发服务器端口(默认 5173)。
  • 使用反向代理

    • 通过 Nginx/Apache 代理 Vite 开发服务器,并配置访问控制。

3. 检查依赖项

某些框架(如 Vue/React)可能间接依赖旧版 Vite,需检查并更新:

bash
npm update

漏洞影响验证

升级后,尝试构造恶意请求测试是否修复:

bash
curl "http://your-server:5173/path/to/sensitive/file?raw&import"

若返回 403 或文件内容未被泄露,则说明修复成功。


注意事项

  1. 备份数据:升级前建议对项目进行快照或代码备份。
  2. 生产环境:Vite 开发服务器不应长期暴露在公网,生产环境应使用 vite build 构建静态文件并通过正式 Web 服务器(如 Nginx)部署。
  3. 监控日志:检查服务器日志是否有可疑文件读取请求。

参考链接

请尽快评估业务影响并采取修复措施,避免因敏感信息泄露导致安全事件。

本文作者:任浪漫

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!