PSF-2026-36
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.
PSF-2026-36
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:PSF-2026-36
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"repo": "https://github.com/python/cpython",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "a0d023fbd23773e24b35d8368789470e22cda5d8"
},
{
"fixed": "a2773a34183b7d94a243bb98fd658926cc5348ce"
},
{
"fixed": "a7bb524fef61f77ede01f660ffbd591e1d5837ce"
},
{
"fixed": "641be42bb07921ba0f8bffe228b1dc706b092ef6"
},
{
"fixed": "851cf9a7142ecbdd39f831055533f58284ad2bcc"
},
{
"fixed": "95355ee3a8e1d3c3d4858d1973aa42a9b91a2801"
},
{
"fixed": "dac88d8615078c55f1304ea4c7a2d822700d4e5a"
}
]
}
],
"versions": [
"v3.11.16",
"v3.10.21",
"v3.12.14",
"v3.13.15",
"v3.14.7",
"v3.15.0rc1",
"v3.15.0b4",
"v3.15.0b3",
"v3.13.14",
"v3.14.6",
"v3.15.0b2",
"v3.14.5",
"v3.15.0b1",
"v3.14.5rc1",
"v3.13.13",
"v3.14.4",
"v3.15.0a8",
"v3.15.0a7",
"v3.12.13",
"v3.10.20",
"v3.11.15",
"v3.15.0a6",
"v3.13.12",
"v3.14.3",
"v3.15.0a5",
"v3.15.0a4",
"v3.15.0a3",
"v3.14.2",
"v3.13.11",
"v3.13.10",
"v3.14.1",
"v3.15.0a2",
"v3.15.0a1",
"v3.13.8",
"v3.11.14",
"v3.10.19",
"v3.12.12",
"v3.14.0",
"v3.14.0rc3",
"v3.13.7",
"v3.14.0rc2",
"v3.13.6",
"v3.14.0rc1",
"v3.14.0b4",
"v3.14.0b3",
"v3.13.5",
"v3.13.4",
"v3.11.13",
"v3.10.18",
"v3.12.11",
"v3.14.0b2",
"v3.14.0b1",
"v3.13.3",
"v3.11.12",
"v3.12.10",
"v3.14.0a7",
"v3.10.17",
"v3.14.0a6",
"v3.14.0a5",
"v3.13.2",
"v3.12.9",
"v3.14.0a4",
"v3.14.0a3",
"v3.13.1",
"v3.12.8",
"v3.10.16",
"v3.11.11",
"v3.14.0a2",
"v3.14.0a1",
"v3.13.0",
"v3.13.0rc3",
"v3.12.7",
"v3.11.10",
"v3.10.15",
"v3.13.0rc2",
"v3.12.6",
"v3.12.5",
"v3.13.0rc1",
"v3.13.0b4",
"v3.13.0b3",
"v3.12.4",
"v3.13.0b2",
"v3.13.0b1",
"v3.13.0a6",
"v3.12.3",
"v3.11.9",
"v3.10.14",
"v3.13.0a5",
"v3.13.0a4",
"v3.12.2",
"v3.11.8",
"v3.13.0a3",
"v3.12.1",
"v3.11.7",
"v3.13.0a2",
"v3.13.0a1",
"v3.11.6",
"v3.12.0",
"v3.12.0rc3",
"v3.12.0rc2",
"v3.11.5",
"v3.10.13",
"v3.12.0rc1",
"v3.12.0b4",
"v3.12.0b3",
"v3.11.4",
"v3.10.12",
"v3.12.0b2",
"v3.12.0b1",
"v3.10.11",
"v3.11.3",
"v3.12.0a7",
"v3.12.0a6",
"v3.10.10",
"v3.11.2",
"v3.12.0a5",
"v3.12.0a4",
"v3.12.0a3",
"v3.10.9",
"v3.11.1",
"v3.12.0a2",
"v3.12.0a1",
"v3.11.0rc2",
"v3.10.8",
"v3.10.7",
"v3.11.0rc1",
"v3.10.6",
"v3.11.0b5",
"v3.11.0b4",
"v3.10.5",
"v3.11.0b3",
"v3.11.0b2",
"v3.11.0b1",
"v3.11.0a7",
"v3.10.4",
"v3.10.3",
"v3.11.0a6",
"v3.11.0a5",
"v3.11.0a4",
"v3.10.2",
"v3.11.0a3",
"v3.10.1",
"v3.10.0rc2",
"v3.10.0rc1",
"v3.10.0b4",
"v3.10.0b3",
"v3.10.0b2",
"v3.10.0b1",
"v3.10.0a7",
"v3.10.0a1",
"v3.9.0a2",
"v3.7.0a2",
"v3.6.0b1",
"v3.6.0a3",
"v3.5.0b1",
"v3.5.0a4",
"v3.5.0a3",
"v3.5.0a2",
"v3.5.0a1",
"v3.4.0b3",
"v3.4.0b2",
"v3.4.0b1",
"v3.4.0a4",
"v3.4.0a3",
"v3.4.0a2",
"v3.4.0a1",
"v3.3.0rc3",
"v3.3.0rc2",
"v3.3.0rc1",
"v3.3.0b2",
"v3.3.0b1",
"v3.3.0a4",
"v3.3.0a3",
"v3.3.0a2",
"v3.2rc3",
"v3.2rc2",
"v3.2rc1",
"v3.2b2",
"v3.2b1",
"v3.2a4",
"v3.2a3",
"v3.2a2",
"v3.2a1",
"v3.1",
"v3.1rc2",
"v3.1rc1",
"v3.1b1",
"v3.1a2",
"v3.1a1",
"v3.0rc3",
"v3.0rc2",
"v3.0rc1",
"v3.0b3",
"v3.0b2",
"v3.0b1",
"v3.0a5",
"v3.0a4",
"v3.0a3",
"v3.0a2",
"v3.0a1",
"v2.4",
"v2.4c1",
"v2.4b2",
"v2.4b1",
"v2.4a3",
"v2.4a2",
"v2.4a1",
"v2.3c2",
"v2.3c1",
"v2.2a3",
"v2.1",
"v2.1c2",
"v2.1c1",
"v2.1b2",
"v2.1b1",
"v2.1a2",
"v2.1a1",
"v2.0",
"v2.0c1",
"v2.0b2",
"v2.0b1",
"v1.6a2",
"v1.6a1",
"v1.5.2",
"v1.5.2c1",
"v1.5.2b2",
"v1.5.2b1",
"v1.5.2a2",
"v1.5.2a1",
"v1.5.1",
"v1.5",
"v1.5b2",
"v1.5b1",
"v1.5a4",
"v1.5a3",
"v1.5a2",
"v1.5a1",
"v1.4",
"v1.4b3",
"v1.4b2",
"v1.4b1",
"v1.3",
"v1.3b1",
"v1.2",
"v1.2b4",
"v1.2b3",
"v1.2b2",
"v1.2b1",
"v1.1.1",
"v1.1",
"v1.0.2",
"v1.0.1",
"v0.9.9",
"v0.9.8"
],
"database_specific": {
"source": "https://github.com/psf/advisory-database/blob/main/advisories/python/PSF-2026-36.json"
}
}
]- Related CVEs
- CVE-2026-15806
Source reference:
/aliases
Publisher severity
No explicit severity was provided.
- Event
- #58678 · Revision 1
- Added to Heist Feed
- Publisher date