CVE-2026-6322fast-uri 库在 URL 规范化过程中存在安全漏洞。当 normalize() 函数解码主机组件中经过百分号编码的权限定界符(如 @ 符号)并在序列化时将其作为原始定界符重新输出,会导致 URI 的实际权限指向攻击者指定的第二个域名。这使得应用程序在执行主机白名单检查或重定向验证时被绕过,存在被诱导访问恶意域名的风险。
该漏洞源于 fast-uri 库在处理 URI 主机组件时的逻辑缺陷。当 normalize() 函数解析包含百分号编码的权限定界符(如 %40 代表 @ 符号)的主机名时,会将其解码。然而,在随后的序列化过程中,这些字符被作为原始定界符重新发出,从而改变了 URI 的 authority 结构。例如,若输入的主机部分为 "trusted.com%40evil.com",解码后变为 "[email protected]"。根据 URI 规范,@ 符号通常用于分隔用户信息和主机,因此解析器会将 "evil.com" 视为实际的目标主机,而 "trusted.com" 被视为用户信息。如果应用程序在执行主机白名单验证、重定向检查或出站请求路由前,先使用受影响的 fast-uri 版本对 URL 进行规范化,攻击者即可利用此特性绕过安全检查,诱导应用程序连接到攻击者控制的服务器,引发开放重定向、SSRF 或数据泄露等安全风险。