CVE-2016-9015: Urllib3 Incorrect Certificate Validation
3.7
CVSS Score
3.0
Basic Information
CVE ID
GHSA ID
EPSS Score
0.66967%
CWE
Published
5/17/2022
Updated
11/18/2024
KEV Status
No
Technology
Python
Technical Details
CVSS Vector
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
urllib3 | pip | >= 1.17, <= 1.18 | 1.18.1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from incorrect mapping between Python's ssl.CERT_* constants and OpenSSL verify flags. The commit diff shows critical changes in PyOpenSSLContext.verify_mode.setter and ssl_wrap_socket where certificate validation flags were improperly set using direct value mappings rather than proper OpenSSL flag combinations. This caused OpenSSL 1.1.0 to misinterpret validation requirements (e.g., treating CERT_REQUIRED as 2 instead of VERIFY_PEER+VERIFY_FAIL_IF_NO_PEER_CERT=1+2=3). Both functions directly handled certificate verification configuration and were modified in the security patch to use proper flag mappings.