IPBUF安全漏洞报告
English
CVE-2026-33131 CVSS 7.4 高危

CVE-2026-33131 H3框架Host头欺骗导致中间件绕过漏洞

披露日期: 2026-03-20

漏洞信息

漏洞编号
CVE-2026-33131
漏洞类型
请求头欺骗
CVSS评分
7.4 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
H3

相关标签

CVE-2026-33131H3Host Header SpoofingMiddleware BypassNode.jsNitroNuxt

漏洞概述

H3是一个极简的HTTP框架。在2.0.0-0至2.0.1-rc.14版本中,存在一个Host请求头欺骗漏洞。该漏洞源于NodeRequestUrl在访问event.url等属性时,会直接使用未经验证的Host请求头来构造URL。由于H3的路由器在中间件运行之前就已解析路由处理程序,攻击者可以通过发送精心构造的Host请求头(如包含路径),导致中间件中的路径校验失败,从而绕过认证或授权中间件。这会影响所有依赖H3构建的应用(包括Nitro/Nuxt),建议立即升级修复。

技术细节

该漏洞的核心在于H3框架处理URL的逻辑缺陷。当中间件访问event.url、event.url.hostname或event.url._url时,_url的getter会利用请求中的Host字段来构建完整的URL对象。然而,这个Host字段是用户可控且未被清洗的。在H3的执行流程中,路由匹配发生在中间件执行之前。当路由器确定目标处理程序后,中间件开始执行。如果中间件(如身份验证中间件)使用event.url.pathname来检查当前路径是否需要保护,攻击者可以篡改Host头。例如,将Host设置为evil.com/admin。此时,中间件看到的路径可能是错误的或无法匹配预期的保护规则,从而跳过认证检查。但路由器在之前已经根据请求行中的实际路径匹配到了处理程序,最终导致未授权访问敏感接口。

攻击链分析

STEP 1
步骤1
攻击者向目标服务器发送HTTP请求,目标为受保护的敏感路由。
STEP 2
步骤2
攻击者在HTTP头中注入伪造的Host字段,例如包含特定路径或混淆字符(Host: localhost:3000/abchehe?)。
STEP 3
步骤3
H3框架的路由器首先根据请求行(Request Line)解析路径,成功匹配到对应的路由处理程序。
STEP 4
步骤4
中间件开始执行,并访问event.url属性。由于该属性基于伪造的Host头构建,导致获取的路径信息与实际请求不符。
STEP 5
步骤5
认证或授权中间件基于错误的路径信息进行校验,导致校验逻辑失效(例如认为路径不在保护范围内)。
STEP 6
步骤6
中间件被绕过,请求直接传递给路由处理程序,攻击者成功获取敏感数据或执行未授权操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
GET /admin/sensitive-data HTTP/1.1 Host: localhost:3000/abchehe? User-Agent: PoC-Client/1.0 # Description: Sending a request to a protected route. # The middleware checks event.url.pathname. # Due to the Host header containing extra path segments ('/abchehe?'), # the middleware logic fails to identify the route as '/admin/sensitive-data'. # The router, however, matches the request line ('GET /admin/sensitive-data') successfully. # Result: Authentication middleware bypassed.

影响范围

H3 >= 2.0.0-0, <= 2.0.1-rc.14

防御指南

临时缓解措施
若无法立即升级,建议在中间件代码中避免使用event.url属性进行安全路径判断,改用原始请求路径。同时,可在反向代理层(如Nginx)配置Host头白名单,过滤包含非法路径字符的请求头。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表