urllib3は、Python向けのHTTPクライアントライブラリです。1.26.0から2.8.0までのバージョンにおいて、proxy_ssl_context、proxy_assert_hostname、proxy_assert_fingerprint、ssl_context、cert_reqs、verify_mode、use_forwarding_for_https=True、およびCERT_NONEという設定項目が、意図したとおりに分離されなくなっていました。これは、ターゲットサーバーのTLS設定が、HTTPSプロキシ接続に誤って適用されることが原因です。具体的には、アプリケーションがHTTPSプロキシを使用し、プロキシのTLSハンドシェイクとは分離されるべきターゲットサーバーのTLS設定を構成する場合に問題が発生します。特に、ターゲット固有のIDまたは認証情報を使用したHTTPSフォワードを行う場合に影響が出ます。cert_reqs=CERT_NONEを設定すると、proxy_ssl_context.verify_modeが上書きされ、その変更が保持されるため、同じコンテキストを再利用する後続の接続で、証明書の検証なしにHTTPSプロキシに接続される可能性があります。攻撃者は、有効なプロキシポリシーが攻撃者の証明書を受け入れた後に、HTTPSプロキシを傍受し、なりすましを行うことで攻撃を実行します。その結果、攻撃者は転送されたトラフィックを監視または変更したり、ターゲットのTLSクライアント証明書を受け取ったりする可能性があります。ただし、CONNECTトンネリングは、依然として独立したエンドツーエンドのターゲットTLS接続を維持します。この問題は、バージョン2.8.0で修正されました。
CVSS 4.0: 7.6 (高) (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)