注目github_advisory3分
Netty CVE-2026-50010: TrustManager ラップでホスト名検証がサイレント無効化
30秒で把握
- 1CVE-2026-50010: Netty の TrustManager ラップでホスト名検証がサイレント無効化
- 2SslContextBuilder.forClient().trustManager() 使用時に MITM 攻撃が成立し得る
- 3Netty 4.2 デフォルト設定でも回避不可・独自 X509TrustManager 利用箇所の即時確認必須
要約
Netty の `SimpleTrustManagerFactory.engineGetTrustManagers()` が、ユーザー提供の `X509TrustManager` を `X509TrustManagerWrapper` でラップする際に、ホスト名検証が完全に無効化される脆弱性(CVE-2026-50010)が判明した。ラップ後のオブジェクトが `X509ExtendedTrustManager` として認識されるため、SunJSSE および Netty 自身の再ラップ処理がスキップされ、エンドポイント識別が追加されない。結果として、Netty 4.2 がデフォルトで `endpointIdentificationAlgorithm="HTTPS"` を設定していても、`SslContextBuilder.forClient().trustManager(somePlainX509TrustManager)` で構築したクライアントはホスト名検証を一切実施しない。中間者攻撃(MITM)に対して無防備な状態になるため、該当構成の即時確認が必要。
あなたへの影響
Netty を使って TLS クライアントを実装しているチームは。
推奨:`SslContextBuilder.forClient().trustManager(...)` に独自の `X509TrustManager` を渡している箇所を今日中に洗い出し、修正版リリースへの更新またはワークアラウンド(`X509ExtendedTrustManager` を直接実装する形への置き換え)を次スプリントまでに適用すべき。