{"id":"CVE-2024-37891","aliases":["GHSA-34jh-p97f-mpxf","PYSEC-2026-1995"],"title":"urllib3's Proxy-Authorization request header isn't stripped during cross-origin redirects","summary":"urllib3's Proxy-Authorization request header isn't stripped during cross-origin redirects","severity":"medium","cvss":4.4,"cvssVector":"CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:N/A:N","vendor":"urllib3","product":"urllib3","ecosystem":"pip","affected":["urllib3 < 1.26.19","urllib3 >= 2.0.0, < 2.2.2"],"patched":["urllib3 1.26.19","urllib3 2.2.2"],"published":"2024-06-17","updated":"2026-09-10","sourceUpdated":"2026-09-10T03:50:14.811193644Z","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-34jh-p97f-mpxf","references":[{"url":"https://github.com/urllib3/urllib3/security/advisories/GHSA-34jh-p97f-mpxf"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-37891"},{"url":"https://github.com/urllib3/urllib3/commit/40b6d1605814dd1db0a46e202d6e56f2e4c9a468"},{"url":"https://github.com/urllib3/urllib3/commit/accff72ecc2f6cf5a76d9570198a93ac7c90270e"},{"url":"https://github.com/urllib3/urllib3"},{"url":"https://lists.debian.org/debian-lts-announce/2024/12/msg00020.html"},{"url":"https://security.netapp.com/advisory/ntap-20240822-0003"},{"url":"https://www.vicarius.io/vsociety/posts/proxy-authorization-header-handling-vulnerability-in-urllib3-cve-2024-37891"}],"tags":["osv","pip"],"epss":0.01141,"epssPercentile":0.64762,"ingestedAt":"2026-07-08T18:25:44.668Z","slug":"CVE-2024-37891","body":"## Overview\n\nWhen using urllib3's proxy support with `ProxyManager`, the `Proxy-Authorization` header is only sent to the configured proxy, as expected.\n\nHowever, when sending HTTP requests *without* using urllib3's proxy support, it's possible to accidentally configure the `Proxy-Authorization` header even though it won't have any effect as the request is not using a forwarding proxy or a tunneling proxy. In those cases, urllib3 doesn't treat the `Proxy-Authorization` HTTP header as one carrying authentication material and thus doesn't strip the header on cross-origin redirects.\n\nBecause this is a highly unlikely scenario, we believe the severity of this vulnerability is low for almost all users. Out of an abundance of caution urllib3 will automatically strip the `Proxy-Authorization` header during cross-origin redirects to avoid the small chance that users are doing this on accident.\n\nUsers should use urllib3's proxy support or disable automatic redirects to achieve safe processing of the `Proxy-Authorization` header, but we still decided to strip the header by default in order to further protect users who aren't using the correct approach.\n\n## Affected usages\n\nWe believe the number of usages affected by this advisory is low. It requires all of the following to be true to be exploited:\n\n* Setting the `Proxy-Authorization` header without using urllib3's built-in proxy support.\n* Not disabling HTTP redirects.\n* Either not using an HTTPS origin server or for the proxy or target origin to redirect to a malicious origin.\n\n## Remediation\n\n* Using the `Proxy-Authorization` header with urllib3's `ProxyManager`.\n* Disabling HTTP redirects using `redirects=False` when sending requests.\n* Not using the `Proxy-Authorization` header.\n\n## Affected packages\n\n- `urllib3 < 1.26.19`\n- `urllib3 >= 2.0.0, < 2.2.2`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `urllib3 1.26.19`\n- `urllib3 2.2.2`","depth":"sunlit","depthScore":24,"depthScoreParts":{"impact":24.2,"likelihood":0.2,"exploitation":0,"ransomware":0},"changes":[]}