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.
We have discovered 455 live websites that are affected by CVE-2026-15806.
| Product | |
| Category | Programming Languages |
| Vulnerable Domains | 455 live websites (100% of CPython install base) |
| Vulnerable Versions |
|
| Vulnerable Versions Count | 65 versions ( 100% of all versions) |
| 149 websites | |
| 62 websites | |
| 28 websites | |
| 22 websites | |
| 19 websites | |
| 13 websites | |
| 12 websites | |
| 12 websites | |
| 10 websites | |
| 9 websites |
| .com | 164 websites |
| .org | 40 websites |
| .net | 23 websites |
| .dk | 23 websites |
| .de | 21 websites |
| .fr | 8 websites |
| .ch | 8 websites |
| .edu | 7 websites |
| .nl | 7 websites |
| .it | 6 websites |
| Domain | Country | Rank | Contacts |
|---|---|---|---|
| **********.com | **,*** | ||
| *********.com | ***,*** | ||
| *******.***.org | ***,*** | ||
| ****.***********.***.au | ***,*** | ||
| *************.com | ***,*** | ||
| ********.***.***.gr | ***,*** | ||
| ***.********.it | ***,*** | ||
| ***************.de | *,***,*** | ||
| ****.*****.br | *,***,*** | ||
| *********.com | *,***,*** |
FAQ