Every CVE Search/ Get API key

CVE-2021-28363

Using default SSLContext for HTTPS requests in an HTTPS proxy doesn't verify certificate hostname for proxy connection

6.5 MediumFix available

The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
Low
Integrity
Low
Availability
None

Exploit likelihood

2.17%Up 1.1 points since Apr 14, 2021
90%50%10%1%

What each source reports

NVD Score used 6.5

The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted.

Record
CVE-2021-28363
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
CVSS 2.0
6.4 MediumAV:N/AC:L/Au:N/C:P/I:P/A:N
Weakness
CWE-295
Updated
2026-11-02
CVE List No score

The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted.

Record
CVE-2021-28363
Updated
2026-11-02
EUVDEUVD-2021-0457 No score

The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted.

Record
EUVD-2021-0457
Updated
2026-11-02
GitHub AdvisoriesGHSA-5phf-pp7p-vc2r 6.9

Using default SSLContext for HTTPS requests in an HTTPS proxy doesn't verify certificate hostname for proxy connection

Impact

Users who are using an HTTPS proxy to issue HTTPS requests and haven't configured their own SSLContext via proxy_config. Only the default SSLContext is impacted.

Patches

urllib3 >=1.26.4 has the issue resolved. urllib3<1.26 is not impacted due to not supporting HTTPS requests via HTTPS proxies.

Workarounds

Upgrading is recommended as this is a minor release and not likely to break current usage.

Configuring an SSLContext with check_hostname=True and passing via proxy_config instead of relying on the default SSLContext

For more information

If you have any questions or comments about this advisory:

Record
GHSA-5phf-pp7p-vc2r
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Weakness
CWE-295
Updated
2026-11-02
OSVALPINE-CVE-2021-28363 6.5

The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted.

Record
ALPINE-CVE-2021-28363
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Updated
2026-11-02
OSVBELL-CVE-2021-28363 6.5

CVE-2021-28363 does not affect BellSoft software

Record
BELL-CVE-2021-28363
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Updated
2026-11-02
Show 8 moreShow less
OSV 6.5

The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted.

Record
CVE-2021-28363
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Updated
2026-11-02
OSVDEBIAN-CVE-2021-28363 6.5

The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted.

Record
DEBIAN-CVE-2021-28363
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Updated
2026-11-02
OSVGHSA-5phf-pp7p-vc2r 6.9

Using default SSLContext for HTTPS requests in an HTTPS proxy doesn't verify certificate hostname for proxy connection

Impact

Users who are using an HTTPS proxy to issue HTTPS requests and haven't configured their own SSLContext via proxy_config. Only the default SSLContext is impacted.

Patches

urllib3 >=1.26.4 has the issue resolved. urllib3<1.26 is not impacted due to not supporting HTTPS requests via HTTPS proxies.

Workarounds

Upgrading is recommended as this is a minor release and not likely to break current usage.

Configuring an SSLContext with check_hostname=True and passing via proxy_config instead of relying on the default SSLContext

For more information

If you have any questions or comments about this advisory:

Record
GHSA-5phf-pp7p-vc2r
CVSS 4.0
6.9 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Weakness
CWE-295
Updated
2026-11-02
OSVRHBA-2021:1147 6.5

Red Hat Bug Fix Advisory: OpenShift Container Platform 3.11.420 bug fix and enhancement update

Record
RHBA-2021:1147
CVSS 3.1
6.5 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Updated
2026-11-02
OSVMGASA-2021-0371 No score

Updated python-pip packages fix security vulnerabilities

A flaw was found in python-pip in the way it handled Unicode separators in git references. A remote attacker could possibly use this issue to install a different revision on a repository (CVE-2021-3572).

The bundled python-urllib3 was also vulnerable to: The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted (CVE-2021-28363).

An issue was discovered in urllib3 before 1.26.5. When provided with a URL containing many @ characters in the authority component, the authority regular expression exhibits catastrophic backtracking, causing a denial of service if a URL were passed as a parameter or redirected to via an HTTP redirect (CVE-2021-33503).

Record
MGASA-2021-0371
Updated
2026-11-02
OSVMGASA-2021-0377 No score

Updated python-urllib3 package fixes security vulnerabilities

The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted (CVE-2021-28363).

An issue was discovered in urllib3 before 1.26.5. When provided with a URL containing many @ characters in the authority component, the authority regular expression exhibits catastrophic backtracking, causing a denial of service if a URL were passed as a parameter or redirected to via an HTTP redirect (CVE-2021-33503).

Record
MGASA-2021-0377
Updated
2026-11-02
OSVPYSEC-2021-59 No score

The urllib3 library 1.26.x before 1.26.4 for Python omits SSL certificate validation in some cases involving HTTPS to HTTPS proxies. The initial connection to the HTTPS proxy (if an SSLContext isn't given via proxy_config) doesn't verify the hostname of the certificate. This means certificates for different servers that still validate properly with the default urllib3 SSLContext will be silently accepted.

Record
PYSEC-2021-59
Updated
2026-11-02
OSVROOT-APP-PYPI-CVE-2021-28363 No score

CVE-2021-28363 in rootio-urllib3 - Patched by Root

Root has patched CVE-2021-28363 in the rootio-urllib3 package for Root:PyPI. Multiple fixed versions available.

Record
ROOT-APP-PYPI-CVE-2021-28363
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
urllib3
PyPI
1.26.0 up to 1.26.4
1.26.4
py3-urllib3
Alpine:v3.14
before 1.26.4-r0
1.26.4-r0
py3-urllib3
Alpine:v3.15
before 1.26.4-r0
1.26.4-r0
py3-urllib3
Alpine:v3.16
before 1.26.4-r0
1.26.4-r0
py3-urllib3
Alpine:v3.17
before 1.26.4-r0
1.26.4-r0
py3-urllib3
Alpine:v3.18
before 1.26.4-r0
1.26.4-r0
py3-urllib3
Alpine:v3.19
before 1.26.4-r0
1.26.4-r0
py3-urllib3
Alpine:v3.20
before 1.26.4-r0
1.26.4-r0
py3-urllib3
Alpine:v3.21
before 1.26.4-r0
1.26.4-r0
py3-urllib3
Alpine:v3.22
before 1.26.4-r0
1.26.4-r0
Show 12 moreShow less
Affected packages
PackageAffectedFixed
py3-urllib3
Alpine:v3.23
before 1.26.4-r0
1.26.4-r0
py3-urllib3
Alpine:v3.24
before 1.26.4-r0
1.26.4-r0
python-urllib3
Debian:12
before 1.26.4-1
1.26.4-1
python-urllib3
Debian:13
before 1.26.4-1
1.26.4-1
python-urllib3
Debian:14
before 1.26.4-1
1.26.4-1
urllib3
PyPI
1.26.0 up to 1.26.4, plus listed versions
1.26.11.26.21.26.3
1.26.4
python-pip
Mageia:8
From an advisory covering 3 CVEs
before 20.3.3-3.3.mga8
20.3.3-3.3.mga8
python-urllib3
Mageia:8
From an advisory covering 2 CVEs
before 1.26.5-1.mga8
1.26.5-1.mga8
python-urllib3
Red Hat:openshift:3.11::el7
before 1:1.24.3-2.el7
1:1.24.3-2.el7
python2-urllib3
Red Hat:openshift:3.11::el7
before 1:1.24.3-2.el7
1:1.24.3-2.el7
rootio-urllib3
Root:PyPI
before 1.26.1+root.io.1
1.26.1+root.io.11.26.1+root.io.21.26.1+root.io.31.26.3+root.io.31.26.0+root.io.41.26.1+root.io.41.26.2+root.io.51.26.3+root.io.41.26.0+root.io.51.26.1+root.io.51.26.2+root.io.61.26.0+root.io.61.26.1+root.io.61.26.0+root.io.71.26.3+root.io.51.26.2+root.io.7
urllib3
Root:PyPI
before 1.26.1+aikido.6
1.26.1+aikido.61.26.0+aikido.71.26.3+aikido.51.26.2+aikido.7

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2021-28363 is a medium vulnerability (CVSS 6.5) in Python Urllib3, published March 15, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.17%, the 82nd percentile. Fixed in urllib3 1.26.4.

References

Show 35 moreShow less
MoveEnter Open