CVE-2026-19553 — SSLContext.wrap_bio() missing validation of server_hostname parameter
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.
Who exploits it and how urgent it is
A 0–100 score combining confirmed exploitation, ransomware and APT use, public exploits, EPSS and severity.
How the score was calculated
- EPSS 0.4% (30-day exploitation probability)+5
- Technical severity (high)+6
The score orders the patch queue; it does not replace your asset context (internet exposure, criticality, compensating controls).
Triage
Is it exploited, how likely is exploitation, what does it touch, and how severe do the sources call it.
Remediation
Fixes and mitigations documented by the sources — linked to the original advisory.
No fix documented by the sources we poll. That does not mean none exists: check the vendor advisory.
First 24 hours
Ordered from the record’s own fields — exposure first, because you cannot patch what you have not found. A rule-generated starting point.
- Identify exposed assets running the affected vendor/product/version combinations (Python CPython).
- The attack is network-based and needs no privileges: restrict exposure (ACLs, VPN, WAF) until patched.
- No fix documented in the sources: reduce exposure and monitor the vendor advisory.
- Exploitation requires user interaction: tighten email/web filtering and warn affected users.
- Search available logs for exploit probes, errors and authentication anomalies.
Affected scope
Vendor, product and versions as the sources word them.
Attack characteristics
The CVSS vector, decoded. It describes the attack, not your exposure to it.
Every base score collected
Sources score independently and may disagree; each row says who scored it and under which version.
| Score | Version | Severity | Expl. | Impact | Scored by |
|---|---|---|---|---|---|
| 7.6 | CVSS 4.0 | High | — | — | cna@python.org via NIST National Vulnerability Database |
| 7.6 | CVSS 4.0 | High | — | — | PSF via CVE Program (cve.org) e CISA ADP |
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X (score shown at the top: cna@python.org) Weakness MITRE
Weakness class according to MITRE’s CWE catalog.
Detection
Read off the CVSS vector and the weakness class. Starting points, not tested rules.
- Prioritize edge telemetry for the network-reachable component (proxy, WAF, IDS/IPS).
Timeline
What happened to this CVE, newest first.
- 2026
- Affected products added · python software foundation/cpython
- Record published
- CVSS changed · 7.6
- Source status changed · → Awaiting Analysis
- Record created in this database
- CVE published
Source activity
Repeated readings are counted rather than listed.
- 1× Official description updated · Oct 15, 2026 – Oct 15, 2026
References
11 on the record
- github.com/python/cpython/commit/641390146a16a38e6701923f4ee4f1940ae77082
- github.com/python/cpython/commit/1697ea386c707142555d98a1263176bbbc014a96
- github.com/python/cpython/commit/869069d52ce0efab2f8c38197e92cdaaa312f1ed
- github.com/python/cpython/commit/966bf426d0b6c31c1b0a255ff14a17143a466ced
- github.com/python/cpython/commit/f4e43ba525187282f2011da0e6ffc0d2b08d8062
- github.com/python/cpython/commit/5867d4e4ae6d1062352baf6b497a4026e8578ccf
- github.com/python/cpython/pull/158503
- github.com/python/cpython/commit/bdebbf9b366ec91e9cd9daa0b3510c9e84b60b80
- mail.python.org/archives/list/security-announce@python.org/thread/QNZRG3YOAMTHDCMVCIC
- github.com/python/cpython/issues/156793
- www.openwall.com/lists/oss-security/2026/09/30/16
Elsewhere on this site
Related CVEs (same products)
- Critical CVE-2026-19445 Use-after-free of a server-side SSLContext when sni_callback switches contexts 15d
- Medium CVE-2026-12345 Race condition in tempfile.TemporaryDirectory cleanup allows deleting files outside the temporary directory 16d
- High CVE-2026-82049 tarfile extraction filters allow file modification and content disclosure via hard link to symlink Sep 14, 2026
- Medium CVE-2026-87910 tarfile hardlink fallback ignores custom extraction filter rejection via None Sep 11, 2026
- Low CVE-2026-15310 zipfile: bzip2/LZMA/Zstandard members decompress without a max_length bound, defeating chunked-read memory limits Aug 25, 2026
- Medium CVE-2026-19672 tarfile extraction filter bypass allows creation of directories outside the destination Aug 19, 2026
Not in any source we poll
Listed rather than left blank: an empty field and an unmeasured one look identical on screen, and only one is a reason to look elsewhere.
- No fixed version, patch or mitigation documented.
- No CISA SSVC assessment.
- No confirmed IOCs, IP addresses, domains, file hashes, or malware artifacts supplied.
- No organization-specific asset inventory, compensating-control status, or patch deployment evidence supplied.
- No exploit packet captures, log samples, or incident case IDs supplied.
Answered from this record
Text assembled only from the fields above — no additional claims.
What should defenders know first?
CVE-2026-19553 is "SSLContext.wrap_bio() missing validation of server_hostname parameter", rated High. It affects CPython (Python); versions are in the scope table. It is not in CISA KEV, which does not rule out exploitation. CVSS 7.6 describes technical severity. EPSS 0.40% estimates the probability of exploitation in 30 days; neither replaces your asset context. First verify whether exposed or business-critical assets run the affected versions, apply vendor fixes or mitigations, and preserve logs for review.
Comments
Moderated technical discussion. Read the community guidelines.
No comments yet.
Sign in or create an account to comment and suggest corrections.