CVE-2026-19553
SSLContext.wrap_bio() の server_hostname パラメータの検証が欠如
- 公開済み
- 2026/09/30
- 更新済み
- 2026/09/30
- CNA の割り当て
- PSF
- 観察された証拠
- 2026/10/02
プライマリ CVSS
nvd · CVSS 4.0
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概要
ssl.SSLContext.wrap_bio() は、ssl.SSLContext.check_hostname が設定されている場合、server_hostname 引数が None でないことを要求していませんでした。SSLObject のパラメータチェック漏れにより、server_hostname 引数が指定されていない場合、ホスト名検証がサイレントにスキップされていました。この欠陥により、SSLContext.check_hostname = True で証明書のホスト名検証が*成功しているように見え*、設定ミスによる ValueError が発生しないプログラムが生じる可能性がありました。プログラムがこれらの API のいずれかに空文字列または None ではない server_hostname 値を渡す場合、証明書のホスト名検証は期待どおりに実行され、プログラムはこの脆弱性の影響を受けません。この脆弱性を緩和するために Python の更新やパッチの適用は必要ありません。緩和するには、SSLContext.wrap_bio()、asyncio.create_connection()、または asyncio.loop.start_tls() に有効な非 None かつ非空の server_hostname 値を渡すと、証明書のホスト名検証が期待どおりに実行されます。最新バージョンの Python へのアップグレードまたはパッチの適用は、server_hostname が指定されていない場合に、ホスト名検証をサイレントにスキップする動作から、SSLContext.wrap_socket() と同様に ValueError を発生させる動作に変更するだけです。
ソース
CVE-2026-19553を再現するProof-of-Conceptラボ。CPythonの`ssl.SSLContext.wrap_bio()`が`server_hostname`がNoneの場合にTLSホスト名検証をサイレントにスキップする問題。
責任ある使用
脆弱性情報は、自分が所有しているシステム、またはテストを許可されているシステムでのみ使用してください。 Kitploit は公開研究メタデータにリンクしており、エクスプロイト コードや悪意のあるペイロードは保存しません。