安全厂商 F5 Labs 披露,攻击者正在对公网暴露的 Vite 开发服务器发起大规模自动化扫描,目标是窃取 AWS 密钥、Azure 访问令牌、环境变量与基础设施即代码(IaC)机密,主要利用 Vite 文件读取绕过漏洞 CVE-2026-39364。F5 蜜罐在 2026 年 8 月记录到 807 次按会话归并的攻击、约 3.2 万次原始事件。
事件概述
Vite 默认只监听 localhost,但开发者常通过 --host 参数、server.host 配置、容器端口映射或云安全组配置失误把它暴露到公网。CVE-2026-39364 于 2026 年 4 月 7 日披露,CVSS 3.1 评分 8.2,影响 Vite 7.1.0 至 7.3.2 之前以及 8.0.5 之前的 8.x 版本,修复版本为 7.3.2 与 8.0.5。
技术细节
Vite 的内部 @fs 路由会在开发期直接从宿主文件系统提供文件,server.fs.deny 拒绝列表本应阻止浏览器读取敏感文件;但请求附加特定查询参数时,服务端未执行拒绝列表过滤,直接以 HTTP 200 返回目标文件内容:
GET /@fs/proc/self/cwd/.env?import&url&inline HTTP/1.0
利用需三个条件同时成立:开发服务器可被网络访问、目标文件位于 server.fs.allow 允许目录内、且命中 server.fs.deny 规则。扫描器的凭据字典覆盖 .env 系列、家目录下的 AWS 凭据与 SSO 缓存、rootkey.csv、Azure accessTokens.json、Terraform state 与 variables,以及 /proc/self/environ、/etc/passwd 等运行时文件;其中 /proc/self/cwd/.env 无需知道绝对路径即可定位环境文件,价值最高。
F5 还观察到双重编码路径遍历(如 %252f)与伪造的 X-Forwarded-For 请求头,用于绕过反向代理与 WAF 的归一化差异、或污染日志分析。扫描流量以 Googlebot、ClaudeBot 等爬虫 User-Agent 伪装。
影响评估
开发服务器常被当作「临时、低价值」资产,但一次文件读取就能拿到应用接触过的全部密钥,把开发端信息泄露升级为云账号接管。攻击者还叠加了 CVE-2025-30208、CVE-2025-31125(已列入 CISA KEV)与 CVE-2024-45811 等旧漏洞,说明是否打过补丁比版本新旧更关键。
修复建议
- 立即升级 Vite 至 7.3.2 或 8.0.5 及以上,并排查上述三个旧漏洞对应的版本。
- 在边界防火墙与云安全组阻断 5173 端口,禁止开发服务器绑定公网接口,默认使用
server.host: 'localhost'。 - 在反向代理或 WAF 层拒绝含
?raw、?import&raw、?import&url&inline查询参数与/@fs/路径前缀的请求。 - 封禁已确认的扫描源 IP:
34.14.15[.]105、34.16.200[.]129、34.11.196[.]206。 - 凡曾暴露过的实例一律视为已泄露:轮换 .env、AWS/Azure 凭据与 Terraform state 中的全部密钥,复核云审计日志中的异常 API 调用,并让开发环境改用短时效云凭据。