All vulnerabilities
CVE-2026-19553

CPython: SSLContext.wrap_bio() missing validation of server_hostname parameter

Python Software Foundation CPythonRuntimes & languages
CVSS
7.6High
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.40%Chance of exploitation activity in the next 30 days, higher than 33% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in3.10.22Also 3.11.17, 3.12.15 and 3 moreCVE List
Published30 Sep 2026Updated 16 Oct 2026CVE List

What fixes it

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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.

Text from CVE List

Affected versions 6

  • CPythonaffected: all versions before 3.10.22CVE List
  • CPythonaffected: 3.11.0 before 3.11.17CVE List
  • CPythonaffected: 3.12.0 before 3.12.15CVE List
  • CPythonaffected: 3.13.0 before 3.13.16CVE List
  • CPythonaffected: 3.14.0 before 3.14.8CVE List
  • CPythonaffected: 3.15.0a1 before 3.15.0rc3CVE List

References 10