CVE-2026-19553
WysokieCVSS 7.6Streszczenie
W Pythonie funkcja ssl.SSLContext.wrap_bio() nie wymagała, aby argument server_hostname był różny od None, gdy ustawiono ssl.SSLContext.check_hostname. Z powodu braku sprawdzenia parametru w SSLObject, jeśli server_hostname nie został podany, weryfikacja nazwy hosta była po cicho pomijana. Może to prowadzić do sytuacji, w której weryfikacja certyfikatu wydaje się działać przy check_hostname = True, mimo błędnej konfiguracji.
Ocena ryzyka
Aplikacje mogą być narażone na ataki man-in-the-middle, ponieważ weryfikacja nazwy hosta certyfikatu jest po cicho pomijana. Może to prowadzić do przechwycenia danych uwierzytelniających lub innych wrażliwych informacji.
Rekomendacja
Należy przekazywać prawidłową, niepustą i różną od None wartość server_hostname do SSLContext.wrap_bio(), asyncio.create_connection() lub asyncio.loop.start_tls(). Alternatywnie można zaktualizować Pythona do najnowszej wersji, co spowoduje zgłoszenie ValueError zamiast cichego pomijania weryfikacji.
Inne podatności w Python ssl module
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

