CVE-2016-9015 Urllib3 Incorrect Certificate Validation
Attackers can perform man-in-the-middle attacks and leak information due to improper TLS certificate validation in specific uncommon configurations.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2016-9015?
CVE-2016-9015 is a low-severity vulnerability in n/a, published on 11 Jan 2017. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
Versions 1.17 and 1.18 of the Python urllib3 library suffer from a vulnerability that can cause them, in certain configurations, to not correctly validate TLS certificates. This places users of the library with those configurations at risk of man-in-the-middle and information leakage attacks. This vulnerability affects users using versions 1.17 and 1.18 of the urllib3 library, who are using the optional PyOpenSSL support for TLS instead of the regular standard library TLS backend, and who are using OpenSSL 1.1.0 via PyOpenSSL. This is an extremely uncommon configuration, so the security impact of this vulnerability is low.
Weakness: CWE-295
Which versions are affected by CVE-2016-9015?
3 open source packages ship an affected version, including urllib3. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
urllib3 PyPI | From 1.17 | 1.18.1 |
urllib3 PyPI | From 1.17 | 1.18.1 |
urllib3 PyPI | From 1.17 | 1.18.1 |
Linux distribution packages (31)
python-rsa SUSE:Enterprise Storage 4 | All versions | 3.1.4-12.9.17 |
python-urllib3 SUSE:Enterprise Storage 4 | All versions | 1.22-3.10.1 |
python-rsa SUSE:Enterprise Storage 5 | All versions | 3.1.4-12.9.17 |
python-urllib3 SUSE:Enterprise Storage 5 | All versions | 1.22-3.10.1 |
python-oauthlib SUSE:HPE Helion OpenStack 8 | All versions | 0.7.2-3.9.20 |
python-setuptools SUSE:Linux Enterprise Desktop 12 SP4 | All versions | 40.6.2-4.12.23 |
python-setuptools SUSE:Linux Enterprise Module for Containers 12 | All versions | 40.6.2-4.12.23 |
python-PyJWT SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 1.4.2-3.10.27 |
python-cliff SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 1.14.0-11.3.2 |
python-mock SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 2.0.0-3.7.25 |
python-oauthlib SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 0.7.2-3.9.20 |
python-pbr SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 3.1.1-3.5.2 |
python-rsa SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 3.1.4-12.9.17 |
python-setuptools SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 40.6.2-4.12.23 |
python-stevedore SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 1.8.0-16.2.1 |
python-urllib3 SUSE:Linux Enterprise Module for Public Cloud 12 | All versions | 1.22-3.10.1 |
python-setuptools SUSE:Linux Enterprise Server 12 SP4 | All versions | 40.6.2-4.12.23 |
python-setuptools SUSE:Linux Enterprise Server for SAP Applications 12 SP4 | All versions | 40.6.2-4.12.23 |
python-setuptools SUSE:Linux Enterprise Software Development Kit 12 SP4 | All versions | 40.6.2-4.12.23 |
python-urllib3 SUSE:Manager Server 3.1 | All versions | 1.22-3.10.1 |
python-PyJWT SUSE:Manager Server 3.2 | All versions | 1.4.2-3.10.27 |
python-oauthlib SUSE:Manager Server 3.2 | All versions | 0.7.2-3.9.20 |
python-rsa SUSE:Manager Server 3.2 | All versions | 3.1.4-12.9.17 |
python-urllib3 SUSE:Manager Server 3.2 | All versions | 1.22-3.10.1 |
python-PyJWT SUSE:OpenStack Cloud 7 | All versions | 1.4.2-3.10.27 |
python-oauthlib SUSE:OpenStack Cloud 7 | All versions | 0.7.2-3.9.20 |
python-rsa SUSE:OpenStack Cloud 7 | All versions | 3.1.4-12.9.17 |
python-setuptools SUSE:OpenStack Cloud 7 | All versions | 40.6.2-4.12.23 |
python-oauthlib SUSE:OpenStack Cloud 8 | All versions | 0.7.2-3.9.20 |
python-oauthlib SUSE:OpenStack Cloud Crowbar 8 | All versions | 0.7.2-3.9.20 |
python3-urllib3 openSUSE:Tumbleweed | All versions | 1.18.1-1.2 |
Products include Python Urllib3.
How do I fix CVE-2016-9015?
Upgrade urllib3 to 1.18.1 or later.
Is CVE-2016-9015 being exploited?
There is no known exploitation of CVE-2016-9015 in the wild and no public exploit code.
Other vulnerabilities in n/a
- CVE-2026-97689 urllib3: HTTPResponse.stream()/read_chunked() buffers an unbounded chunk-size line into memory
- CVE-2026-44432 urllib3: Decompression-bomb safeguards bypassed in parts of the streaming API
- CVE-2026-21441 urllib3 vulnerable to decompression-bomb safeguard bypass when following HTTP redirects (streaming API)
- CVE-2025-66418 urllib3 allows an unbounded number of links in the decompression chain
- CVE-2025-66471 urllib3 Streaming API improperly handles highly compressed data
Sources
Also known as GHSA-v4w5-p2hg-8fh6, PYSEC-2017-98, SUSE-RU-2019:2627-1, SUSE-SU-2019:0139-1, openSUSE-SU-2024:10540-1.