CVE-2026-15806

`HTTPPasswordMgr` can send saved HTTPS credentials via HTTP because of incorrect scheme matching

MEDIUM
6
CVSS Score
Published: August 18, 2026 at 03:50 PM UTC
Updated: October 22, 2026 at 10:10 PM UTC
1 product affected across 1 vendorPython

Using CPython by Python Software Foundation?

Get instant alerts when new vulnerabilities affect CPython - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM6
Exploit prediction
EPSS 0.5%
SSVC
PoC

Description

The HTTPPasswordMgr class in the urllib.request module, along with its subclasses HTTPPasswordMgrWithDefaultRealm and HTTPPasswordMgrWithPriorAuth, did not take the URL scheme into account when matching stored credentials against a requested URL. Credentials added for an https:// URL were also used for requests to the same host over http://, so an attacker able to redirect or downgrade a client to plain HTTP (for example, via an HTTPS-to-HTTP redirect or an on-path position) could capture credentials in cleartext. Credentials added for http:// URLs could likewise be sent over https://. Credential matching is now scoped by URL scheme. Credentials registered with a URL that includes a scheme are only used for requests with the same scheme. Credentials registered with a bare authority (such as example.com or example.com:8080) continue to match any scheme, preserving compatibility with existing code, including proxy authentication. Users who cannot upgrade immediately can mitigate by ensuring that applications never make plain http:// requests to hosts for which credentials are registered, for example by not following redirects to http:// URLs.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

0 ≤ v < 3.10.223.11.0 ≤ v < 3.11.173.12.0 ≤ v < 3.12.153.13.0 ≤ v < 3.13.163.14.0 ≤ v < 3.14.83.15.0a1 ≤ v < 3.15.0rc203.11.03.12.03.13.03.14.03.15.0a1
Affected range stops below 3.10.22, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.11.17, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.12.15, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.13.16, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.14.8, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.15.0rc2, so it looks safe — our inference, not a vendor statement

SSVC — Action Prioritization

SSVCPoCNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

6MEDIUMPSF
Vector?

Quick Info

StatusAWAITING ANALYSIS
CWE
CWE-319CWE-522

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card