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.
Published: 2026-09-30
Score: 7.6 High
EPSS: < 1% Very Low
KEV: No
Impact: Hostname Verification Bypass
Action: Apply Patch
AI Analysis

Impact

The defect is that ssl.SSLContext.wrap_bio() does not require the server_hostname argument when ssl.SSLContext.check_hostname is set. As a result, if an application omits the hostname, the SSLObject skips hostname verification and the handshake completes without raising an exception. This can give developers a false sense that certificate validation succeeded while an attacker could substitute a rogue certificate. The vulnerability is a classic example of missing validation (CWE‑295) and implicit trust (CWE‑297).

Affected Systems

The flaw targets the Python Software Foundation’s CPython interpreter. It impacts any CPython installation that calls SSLContext.wrap_bio, asyncio.create_connection, or asyncio.loop.start_tls without supplying a non‑empty server_hostname. The CNA list does not specify an affected version range, so any CPython release before the patch is potentially vulnerable.

Risk and Exploitability

With a CVSS score of 7.6 the severity is high, but the exploit probability is unknown because no EPSS score is provided, and the vulnerability is not in the CISA KEV catalog. The likely attack vector is an application that calls the affected APIs without supplying a server_hostname; an attacker could present a forged certificate to the client, causing it to accept the connection. This scenario is inferred from the description, as the vulnerability reveals a missing runtime check rather than an externally exploitable network flaw, so the feasibility depends on how often code neglects to provide a hostname. Nonetheless, the potential for a man‑in‑the‑middle attack justifies a high priority value.

Generated by OpenCVE AI on October 1, 2026 at 02:33 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade your CPython installation to a version that validates the server_hostname argument and raises a ValueError when it is missing, which is the behavior of the latest release.
  • If an upgrade cannot be performed immediately, modify all calls to SSLContext.wrap_bio, asyncio.create_connection, or asyncio.loop.start_tls to pass a non‑empty, non‑None server_hostname so that hostname verification proceeds normally.
  • Review existing code and add defensive checks or wrappers to guarantee that a valid server_hostname is supplied before initiating any TLS handshakes.

Generated by OpenCVE AI on October 1, 2026 at 02:33 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4827-1 python3.11 security update
History

Thu, 01 Oct 2026 01:15:00 +0000


Thu, 01 Oct 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-295
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.4, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N'}

threat_severity

Important


Wed, 30 Sep 2026 23:00:00 +0000


Wed, 30 Sep 2026 21:00:00 +0000


Wed, 30 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
First Time appeared Python
Python cpython
Vendors & Products Python
Python cpython

Wed, 30 Sep 2026 19:30:00 +0000

Type Values Removed Values Added
References

Wed, 30 Sep 2026 16:45:00 +0000

Type Values Removed Values Added
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.
Title SSLContext.wrap_bio() missing validation of server_hostname parameter
Weaknesses CWE-297
References
Metrics cvssV4_0

{'score': 7.6, 'vector': '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: PSF

Published:

Updated: 2026-10-16T18:33:12.475Z

Reserved: 2026-08-11T15:22:03.833Z

Link: CVE-2026-19553

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-30T17:16:45.880

Modified: 2026-10-16T19:17:06.673

Link: CVE-2026-19553

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-30T16:17:39Z

Links: CVE-2026-19553 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T02:45:17Z

Weaknesses
  • CWE-295

    Improper Certificate Validation

  • CWE-297

    Improper Validation of Certificate with Host Mismatch