CVE-2026-27448pyOpenSSL是OpenSSL库的Python封装库。该漏洞影响0.14.0至26.0.0之前的版本。当用户通过set_tlsext_servername_callback设置的TLS服务器名称指示(SNI)回调函数抛出未处理的异常时,连接仍会被错误地接受,而不是被拒绝。这导致依赖该回调进行安全敏感操作(如证书验证、访问控制、域名检查等)的应用存在安全漏洞。攻击者可以利用此漏洞绕过安全检查,建立本应被拒绝的TLS连接,从而可能进行中间人攻击、恶意证书欺骗或其他安全敏感操作。漏洞已在26.0.0版本中修复,未处理的异常现在会导致连接被拒绝。
TLS服务器名称指示(SNI)扩展允许客户端在TLS握手期间指定要连接的主机名。pyOpenSSL提供set_tlsext_servername_callback方法用于设置处理SNI的回调函数。在受影响的版本(0.14.0到<26.0.0)中,当用户提供的回调函数抛出未捕获的异常时,OpenSSL的默认行为是继续接受连接。这与许多安全敏感应用的设计预期不符,这些应用通常依赖SNI回调来执行访问控制、证书验证、域名验证等安全检查。攻击者可以通过发送带有特定SNI主机名的TLS连接请求,触发回调中的未处理异常,从而绕过安全检查。在修复版本26.0.0中,当回调抛出未处理异常时,连接将被正确拒绝,从而确保安全检查不会被绕过。