CVE-2026-34835Rack Ruby Web服务器接口存在主机头注入漏洞。在受影响版本中,解析Host头时使用了宽松的正则表达式,允许RFC规范外的特殊字符(如/、?、#、@)。这导致依赖req.host进行前缀或后缀校验的应用可被绕过,引发主机头中毒,攻击者可利用该漏洞构造恶意链接或重定向。
该漏洞的核心在于Rack::Request解析Host头时使用的AUTHORITY正则表达式未能严格遵循RFC规范,错误地接受了诸如斜杠(/)、问号(?)、井号(#)及艾特符(@)等非法字符。在许多基于Rack的Web应用中,开发者依赖`req.host`或`req.base_url`来判断请求来源的合法性,通常采用简单的字符串前缀或后缀匹配(例如检查域名是否以"example.com"结尾)。攻击者可构造包含@符号的恶意Host头(如`[email protected]`),利用@作为用户信息和主机名的分隔符特性,绕过应用层对合法域名的验证逻辑。一旦验证通过,应用在生成重定向链接或构建动态URL时,会直接使用被污染的`req.host`值,导致最终生成的URL指向攻击者控制的服务器,从而引发主机头注入攻击,造成钓鱼或敏感信息泄露。