Bug 2448508 (CVE-2026-27448)

Summary: CVE-2026-27448 pyOpenSSL: TLS connection bypass via unhandled callback exception in set_tlsext_servername_callback
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security DevOps Team <prodsec-dev>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: anthomas, aprice, bdettelb, caswilli, doconnor, dranck, dschmidt, eborisov, eglynn, ehelms, erezende, ggainey, jdobes, jjoyce, jkoehler, jlanda, jmitchel, jpretori, jsamir, jschluet, juwatts, jwong, kaycoth, kshier, lball, lbrazdil, lhh, lphiri, mburns, mgarciac, mhulan, mminar, ngough, nmoumoul, oezr, omaciel, orabin, osousa, pbohmill, pcreech, rbiba, rchan, simaishi, smallamp, smcdonal, sskracic, stcannon, teagle, tmalecek, tpfromme, ttakamiy, veshanka, yguenane
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in pyOpenSSL. The set_tlsext_servername_callback callback function can be used to implement Server Name Indication (SNI) during the TLS handshake. When the callback raises an unhandled exception, the handshake incorrectly proceeds instead of terminating. This fail-open behavior can allow an attacker to bypass SNI-based security controls and access restricted endpoints.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2450395, 2450396    
Bug Blocks:    

Description OSIDB Bzimport 2026-03-18 00:02:29 UTC
pyOpenSSL is a Python wrapper around the OpenSSL library. Starting in version 0.14.0 and prior to version 26.0.0, if a user provided callback to `set_tlsext_servername_callback` raised an unhandled exception, this would result in a connection being accepted. If a user was relying on this callback for any security-sensitive behavior, this could allow bypassing it. Starting in version 26.0.0, unhandled exceptions now result in rejecting the connection.