CVE-2026-44431urllib3是Python广泛使用的HTTP客户端库。在其1.23版本至2.7.0之前的版本中存在一处安全漏洞。该漏洞发生在使用低级API时,具体是通过ProxyManager.connection_from_url()方法并设置assert_same_host=False参数。在此配置下,如果发生跨源重定向,应用程序原本用于受信任主机的敏感HTTP请求头(如Authorization头)会被错误地转发到不受信任的重定向目标主机。这种行为可能导致用户的认证凭证或其他敏感信息泄露给恶意第三方。官方已在2.7.0版本中修复了此问题。
该漏洞的根本原因在于urllib3在处理重定向时的头部清理逻辑存在缺陷。通常情况下,为了防止敏感信息泄露,HTTP库在跟随跨源重定向时应当移除特定的敏感头部(如Authorization、Cookie等)。然而,在受影响版本中,当开发者使用ProxyManager的connection_from_url()方法,并显式设置assert_same_host=False以绕过主机检查时,urllib3未能正确清理这些头部。攻击者可以利用此漏洞诱导受害者向攻击者控制的服务器发起请求。由于受害者应用程序使用了易受攻击的urllib3版本和特定的API调用,当攻击者的服务器返回一个指向恶意域名(如attacker.com)的302重定向响应时,urllib3会自动跟随该重定向。此时,原本发送给受信任服务器的Authorization头部会被原样发送给attacker.com。攻击者捕获该头部后,即可获取受害者的访问令牌或凭证,进而接管账户。