CVE-2026-19553CWE-297

CVE-2026-19553

published September 30, 2026

CVSS
7.6
EPSS
0%
Percentile
33.3
In the wild
Unconfirmed
What it is

ssl.SSLContext.wrap_bio() didn't require the server_hostname argument

to not be None if ssl.SSLContext.check_hostname was set. Due to a

missing parameter check in SSLObject, if the server_hostname argument

isn't supplied then hostname verification would be silently skipped.

This defect could lead to programs where certificate hostname verification

*appeared* to be succeeding with SSLContext.check_hostname = True and no

ValueError being raised due to misconfiguration.

If the program passes a server_hostname value that isn't an empty string

or None to any of these APIs then certificate hostname verification

proceeds as expected and the program is not affected by this vulnerability.

Mitigating this vulnerability doesn't require updating Python or applying

the patch. To mitigate, pass a valid non-None and non-empty

server_hostname value to SSLContext.wrap_bio(),

asyncio.create_connection(), or asyncio.loop.start_tls() and

certificate hostname verification will proceed as expected. Upgrading to

the latest version of Python or applying the patch only changes the

behavior from silently skipping hostname verification to raising a

ValueError, similar to SSLContext.wrap_socket(), when server_hostname

isn't supplied.

The record
Technical detail
CVSS
7.6 · NONE
CVSS v4.0
7.6 · CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
EPSS
0.00401 · 33.3th percentile
Weakness
CWE-297 · Improper Validation of Certificate with Host Mismatch
Published
2026-09-30T21:16Z
References (11)
EPSS history
Timeline
  • 02 OCT 03:42Z
    EPSS moved — → 0%
    epss
  • 30 SEP 16:17Z
    SSLContext.wrap_bio() missing validation of server_hostname parameter
    cvelistv5