?inline&import
或 ?raw?import
绕过文件读取限制,读取服务器上的任意文件(如配置文件、环境变量等)。--host
或 server.host
配置)时才会受此漏洞影响。如果你的项目使用了 Vite,可以通过以下方式检查是否受影响:
检查 Vite 版本:
bashnpm list vite
或查看 package.json
中的 vite
版本。
检查是否暴露公网:
vite.config.js
是否包含:
jsserver: {
host: true, // 或指定 0.0.0.0
}
--host
:
bashvite --host
官方已发布修复版本,请升级至以下或更高版本:
受影响版本 | 安全版本 |
---|---|
Vite 6.x | ≥ 6.2.5 |
Vite 5.x | ≥ 5.4.17 |
Vite 4.x | ≥ 4.5.12 |
升级命令:
bashnpm install vite@latest
# 或指定版本
npm install vite@6.2.5
禁用公网访问:
vite.config.js
中的 host: true
或 host: '0.0.0.0'
配置。vite --host
启动开发服务器。限制访问 IP:
ufw
、iptables
)或云安全组策略,仅允许可信 IP 访问开发服务器端口(默认 5173
)。使用反向代理:
某些框架(如 Vue/React)可能间接依赖旧版 Vite,需检查并更新:
bashnpm update
升级后,尝试构造恶意请求测试是否修复:
bashcurl "http://your-server:5173/path/to/sensitive/file?raw&import"
若返回 403
或文件内容未被泄露,则说明修复成功。
vite build
构建静态文件并通过正式 Web 服务器(如 Nginx)部署。请尽快评估业务影响并采取修复措施,避免因敏感信息泄露导致安全事件。
本文作者:任浪漫
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!