CVE-2026-39364:暴露的 Vite 开发服务器遭大规模扫描,云凭据成批被窃

安全厂商 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[.]10534.16.200[.]12934.11.196[.]206
  • 凡曾暴露过的实例一律视为已泄露:轮换 .env、AWS/Azure 凭据与 Terraform state 中的全部密钥,复核云审计日志中的异常 API 调用,并让开发环境改用短时效云凭据。

参考来源