urllib3: HTTPS proxy TLS configuration may be ignored or overridden
Why It Matters
Analysis dossierWhy It Matters
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
High
Unknown
Unknown
Risk basis: SOC ecosystem technology relevance; HIGH severity; No confirmed exploitation signal in current enrichment
Affected Products & Remediation
5 source-backed products- azl3 python-pip 24.2-10 on Azure Linux 3.0 · version range not provided by source · Microsoft MSRC · Source
- azl3 libical 3.0.10-1 on Azure Linux 3.0 · version range not provided by source · Microsoft MSRC · Source
- azl3 python-virtualenv 20.36.1-6 on Azure Linux 3.0 · version range not provided by source · Microsoft MSRC · Source
- azl3 python3 3.12.14-2 on Azure Linux 3.0 · version range not provided by source · Microsoft MSRC · Source
- azl3 tensorflow 2.16.1-11 on Azure Linux 3.0 · version range not provided by source · Microsoft MSRC · Source
Vendor or catalog guidance (source)
- Microsoft MSRC: Release Notes
Known exploitation (source facts)
Only what a source states. Unknown means no source has said either way; it is not "not exploited".
- CISA KEV
- Unknown
- Exploited (source statement)
- Unknown
- Publicly disclosed (source)
- Unknown
Suggested hunting (rule-based inference)
SecOps Signal recommendation (rule-based inference). These steps are hunting hypotheses from the vulnerability class; they do not state or imply that exploitation occurred here or anywhere.
Matched user-interaction-client (CVSS AV:N, CVSS UI:R)
Exposure
- Identify endpoints reporting this CVE, especially those used for email and web browsing.Telemetry: DeviceTvmSoftwareVulnerabilities · A network vector that needs user interaction points at user-facing client software. · Rule user-interaction-client
Exploitation evidence
- Review unusual child processes started by the affected client application on affected endpoints.Telemetry: DeviceProcessEvents · Hunting hypothesis from the CVSS vector; it does not show that exploitation occurred. · Rule user-interaction-client
Response
- Confirm the source-stated update on affected endpoints.Telemetry: DeviceTvmSoftwareVulnerabilities · A follow-up inventory check verifies remediation. · Rule user-interaction-client
CISA KEV Record
CISA KEV status was not determined for this record.
Change History & Source Data
— No recorded material change
- CNA / source
- security-advisories@github.com
- Record status · verification
- UPDATED · NVD API
- CPE
- cpe:2.3:a:python:urllib3:*:*:*:*:*:*:*:*
Evidence & Provenance
Linked by the query's stored exact CVE association. Review required tables and validation status before use.
DeviceTvmSoftwareVulnerabilities| where CveId == "CVE-2026-97687"| project DeviceId, DeviceName, OSPlatform, OSVersion, SoftwareVendor, SoftwareName, SoftwareVersion, CveId, VulnerabilitySeverityLevel, RecommendedSecurityUpdate, RecommendedSecurityUpdateId| sort by VulnerabilitySeverityLevel desc