Vite开发服务器遭全网扫描 AWS与Azure云凭据成目标
一场以暴露在公网的 Vite 开发服务器为目标的大规模扫描行动正在进行,攻击者的目的非常明确:窃取 AWS 与 Azure 部署环境中的云凭据和配置文件。相关情况由技术公司 F5 于 2026 年 9 月 14 日披露。
一个 4 月就已公开的漏洞,现在被规模化利用
行动所依赖的是 CVE-2026-39364,这是一枚高危级别的访问控制绕过漏洞,影响 Vite 7.1.0 至 7.3.2,以及 8.x 分支中 8.0.5 之前的版本。漏洞于 4 月 7 日公开披露。
利用方式相当简单:未经认证的攻击者只需在一个 HTTP GET 请求中操纵查询参数,就能绕过安全限制,以明文形式读取本不该被访问到的文件。按照 F5 的分析,当请求后面附加 ?raw、?import&raw 或 ?import&url&inline 这类参数时,服务端不会执行拒绝列表过滤,而是直接返回 HTTP 200 并吐出目标文件内容。
F5 通过自有蜜罐传感器在一个月内观测到 800 多次攻击、约 3.2 万条原始事件。
攻击者在找什么
入侵得手之后,扫描会立刻转向高价值凭据,使用的是相当完整的字典列表,覆盖以下几类目标:
.env、.env.production、.env.local等各类环境变量文件- 多个可能的用户主目录下的 AWS 凭据文件
- AWS 配置文件与凭据备份
- Azure 凭据与访问令牌
- Terraform 的 state 文件与变量文件
- Serverless 框架的配置与状态文件
/proc/self/environ、/proc/1/environ、/proc/self/cwd/.env/etc/passwd
F5 还注意到,攻击方同时尝试了各种路径遍历与编码变体,包括双重编码的遍历序列,目的显然是绕过反向代理或 WAF 的路径规范化处理。
从流量来源看,绝大部分恶意行为源自美国、比利时和荷兰,攻击者使用 Google Cloud 的 IP 段来规避封禁。最活跃的几个 IP 还同时利用了 Vite 的其他访问控制缺陷,包括 CVE-2025-30208、CVE-2025-31125 和 CVE-2024-45811。
Vite 本不该暴露在公网
Vite 默认绑定在 localhost 上,理论上不存在这个风险。但 F5 研究人员指出,开发者经常在不经意间把它推到公网:使用 --host 参数启动、在配置中设置了 server.host,或者 Docker 端口映射写错——这三种情况在日常开发中太常见了。
F5 给出的加固建议包括:
- 将 Vite 升级到最新版本,该版本已修复上述被利用的缺陷
- 在防火墙层面封锁 5173 端口的外部访问
- 拦截可疑的
/@fs/路径请求 - 不要信任爬虫的 User-Agent 字符串做白名单放行
- 将
34.14.15.105、34.16.200.129、34.11.196.206等高频来源 IP 加入黑名单
F5 特别强调了最后一条:如果存在漏洞的 Vite 服务器曾经公网暴露过,应当轮换该系统权限范围内的全部密钥,而不是只打补丁。
为什么这条新闻值得所有云服务器用户看
这次事件的本质并不是"Vite 有漏洞",而是"一个读文件的漏洞,可以直接换算成整个云账号的控制权"。
.env 文件里通常放着数据库密码、对象存储密钥、第三方 API token;~/.aws/credentials 里放着长期有效的 Access Key;Terraform 的 state 文件更夸张,它是基础设施的完整地图,里面往往明文保存着各种资源的敏感属性。这三类文件任意一个泄露,攻击者的下一步就不再是渗透,而是直接登录你的云控制台。
对使用美国云服务器或香港云服务器承载出海业务的团队,这类风险尤其现实——很多团队为了协作方便,会在云主机上直接跑开发环境,并且顺手加上 --host 让同事能访问。
我们想把话说得直接一点:开发服务器不应该出现在公网上,这一条没有例外。
但现实中我们见过太多相反的情况——测试环境跑在生产同一台机器上,为了方便演示开了公网端口,演示完忘了关。攻击者不需要多高明的技术,一次全网 5173 端口扫描就能筛出一批目标。
三条最低限度的建议:
第一,把开发和演示环境放在独立的轻量云服务器上,与生产环境物理隔离,即使被打穿也不牵连主业务。
第二,凭据不要落在文件系统里。能用 IAM 角色、实例元数据、密钥管理服务就不要用长期 Access Key;如果必须用,加上 IP 白名单和最小权限策略。
第三,做一次端口自查。不只是 5173,还包括 3000、8080、9000、6379、27017 这些"顺手开一下"的高危端口。SellBGP 的香港高防服务器与高防云产品支持在边缘层做端口与来源策略收敛,把管理和开发类端口挡在防护层之外,这比在主机上逐台配 iptables 要可靠。
最后提醒一句 F5 的那条建议:一旦确认曾经暴露,密钥必须轮换。打了补丁但没换密钥,等于换了锁没换钥匙。
声明:本文由SellBGP编辑部依据F5 Labs研究及公开渠道信息独立撰写。转载请注明出处。