All urllib3 CVEs — Complete Vulnerability History

Last updated: April 1, 2026 · Data: OSV Database

urllib3 is the HTTP client underlying Python's requests library. It's one of the most downloaded packages on PyPI. CVEs here affect every application using requests transitively.

PyPI 300M+ weekly downloads 4 CVEs total

Full CVE history

CVEYearSeverityDescriptionFix
CVE-2019-113242019HIGHCertificate verification bypass via crafted hostnameFixed 1.24.2
CVE-2021-335032021HIGHReDoS via crafted HTTP responseFixed 1.26.5
CVE-2023-438042023MEDIUMCookie header not stripped on redirectFixed 2.0.6
CVE-2023-458032023MEDIUMRequest body not stripped after redirectFixed 2.0.7

Current safe version: 2.2.2

# Before
"urllib3==1.25.11"
# After
"urllib3==2.2.2"

Then run: pip install -r requirements.txt

Paste your manifest — see your exact versions against the full CVE history.

Scan with PackageFix →

Free · No signup · No CLI · Runs in your browser

Common questions

Is there a breaking change between urllib3 1.x and 2.x?
Yes — urllib3 2.x requires Python 3.8+, drops Python 2 support, and has API changes. requests pins to urllib3<3 so it works with both. If you use urllib3 directly, check the migration guide.
Does updating requests update urllib3?
Not to a specific version. requests accepts a range. Pin urllib3 explicitly in your requirements.txt if you need to force a specific safe version.

Related