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.
{
"cna_assigner": "PSF",
"cwe_ids": [
"CWE-319",
"CWE-522"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/15xxx/CVE-2026-15806.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "3.10.22"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "3.11.0"
},
{
"fixed": "3.11.17"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "3.12.0"
},
{
"fixed": "3.12.15"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "3.13.0"
},
{
"fixed": "3.13.16"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "3.14.0"
},
{
"fixed": "3.14.8"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "3.15.0a1"
},
{
"fixed": "3.15.0rc2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "a0d023fbd23773e24b35d8368789470e22cda5d8"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "a2773a34183b7d94a243bb98fd658926cc5348ce"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "a7bb524fef61f77ede01f660ffbd591e1d5837ce"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "641be42bb07921ba0f8bffe228b1dc706b092ef6"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "851cf9a7142ecbdd39f831055533f58284ad2bcc"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "95355ee3a8e1d3c3d4858d1973aa42a9b91a2801"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "dac88d8615078c55f1304ea4c7a2d822700d4e5a"
}
],
"source": "REFERENCES_COMMIT"
}
]
}