一、漏洞核心信息
漏洞名称:Undertow HTTP Host 请求头注入漏洞(HTTP Host Header Injection)
漏洞定级:高危漏洞,CVSS 评分 9.6/10
影响核心:Java 生态主流的高性能非阻塞 Web 服务器 Undertow,Spring Boot 项目首当其冲
漏洞本质:服务器对客户端传入的 Host 请求头未做严格合法性校验与清洗,直接采信并使用该参数
二、漏洞核心根源
2.1 HTTP Host 头的作用
HTTP 协议中的 Host 请求头是客户端发送请求时告诉服务器「我要访问你的哪个虚拟主机/域名」的核心请求头。
GET /api/user HTTP/1.1
Host: www.xxx.com
User-Agent: xxx
一台服务器可能绑定多个域名,通过 Host 头区分要响应哪个域名的业务。
2.2 Undertow 的缺陷
Undertow 服务器在受影响版本中存在两个核心问题,两者叠加导致高危漏洞:
- 默认完全信任客户端传入的 Host 头:不对 Host 头做任何合法性校验,客户端可以随意伪造任意值的 Host 头,服务器都会直接接收并使用。
- Java 应用的开发陋习放大风险:绝大多数 Java 开发者会通过
HttpServletRequest的两个核心 API 获取 Host 相关值,且直接使用不做校验:request.getServerName():底层直接读取客户端传入的 Host 头值request.getHeader("Host"):直接读取原生的 Host 请求头内容
2.3 关键补充
这个漏洞不是代码层面的业务漏洞,而是 Undertow 服务器的底层协议处理漏洞,哪怕业务代码写得再规范,只要使用了受影响版本的 Undertow,就存在被攻击的风险。
三、漏洞的危害
该漏洞利用门槛极低,生产环境中招后损失极大,主要危害包括:
危害 1:钓鱼欺诈 & 恶意跳转
很多 Java 应用会根据 request.getServerName() 动态拼接 URL。攻击者伪造恶意 Host 头发起请求,应用生成的跳转链接会指向攻击者的钓鱼域名,导致账号密码、token、敏感信息泄露。
危害 2:Web 缓存投毒攻击
如果应用前端部署了 CDN、反向代理或浏览器缓存,攻击者伪造恶意 Host 头访问应用,服务器返回的页面中会包含恶意 Host 的资源链接,缓存服务器会将该恶意页面缓存,导致大批量用户中招。
危害 3:越权访问 & 敏感信息泄露
很多应用会通过「Host 头是否为合法域名」做简单的权限校验,攻击者伪造合法的内网 Host 头,即可绕过该校验,直接访问后台管理接口、下载敏感文件。
危害 4:漏洞叠加放大风险
该漏洞可与其他漏洞叠加,攻击者通过伪造 Host 头构造恶意参数,可能进一步实现远程代码执行(RCE)、服务器文件写入/读取,最终导致服务器被完全控制。
四、漏洞影响范围
受影响的 Undertow 版本
- Undertow 2.2.x 全系列版本(2.2.0.Final ~ 2.2.19.Final)

