Istio
1.30.8Networking & Messagingセキュリティ修正を中心としたメンテナンスリリースです。追加の正確性修正も含まれていますが、オペレーターに新たな移行や設定変更を求める案内はありません。
影響確認 (7)
securityアンビエントモードのポート単位 mTLS ポリシー判定を修正
メッシュ全体の
STRICTポリシー、ポート単位のSTRICTPeerAuthentication、およびPERMISSIVEまたはDISABLEモードのワークロードを組み合わせてアンビエントモードを利用している場合に該当します。アンビエントモードで、メッシュ全体の
STRICTポリシー下にあるワークロードがPERMISSIVEまたはDISABLEで動作すると、ポート単位のSTRICTPeerAuthenticationが演算子の優先順位の誤りで無視されることがありました。これにより、mTLS が必要なポートへ平文トラフィックが到達していました。この判定が修正されました。security
AuthorizationPolicyのホストヘッダー照合を修正request.またはheaders[:authority] request.を条件にしたheaders[host] AuthorizationPolicyを利用している場合に該当します。request.またはheaders[:authority] request.を条件にしたheaders[host] AuthorizationPolicyの照合が大文字と小文字を区別していたため、ホスト名の大文字小文字が異なるリクエストでポリシーを回避できることがありました。ホスト名を正しく照合するよう修正されました。security古い conntrack エントリによるサイドカー迂回を修正
新しい受信接続が、切断済み接続の4タプルを再利用する場合に該当します。
切断済み接続と同じ4タプルを再利用した新しい受信接続が、古い conntrack の
ESTABLISHEDエントリに一致し、サイドカーのプロキシを迂回できることがありました。この接続処理が修正されました。security不正なリソース名による
istiodのクラッシュを修正メッシュ ID を持つワークロードが
istio.xDS リクエストを送信する場合に該当します。io/debug メッシュ ID を持つワークロードが、URL として解析できないリソース名を含む
istio.xDS リクエストを送ると、io/debug istiodがクラッシュし、メッシュ全体のコントロールプレーンが再起動ループに入ることがありました。このリクエスト処理が修正されました。security空の
AuthorizationPolicyエントリによるistiodのクラッシュを修正空の
toまたはfromエントリを含むAuthorizationPolicyとともにアンビエントモードを利用している場合に該当します。アンビエントモードで空の
toまたはfromエントリを含むAuthorizationPolicyが検証用 webhook に拒否されない場合、istiodがクラッシュし、ポリシーを削除するまで再起動ループに入ることがありました。その間、メッシュ全体への設定配布が停止していました。このポリシー処理が修正されました。securityマルチクラスタ環境での
CLUSTER_ID取り違えを修正マルチクラスタ構成を利用している場合に該当します。
マルチクラスタ構成で、プロキシが別クラスタの
CLUSTER_IDを名乗り、そのクラスタのkubernetes://シークレットを SDS 経由で受け取れることがありました。このクラスタ識別情報の扱いが修正されました。security不正な
traceparentによるztunnelのパニックを修正ztunnelが、ハイフン区切りの4フィールドを持たない55バイトのtraceparentヘッダーを解析する場合に該当します。ztunnelが、ハイフンで区切られた4つのフィールドを持たない55バイトのtraceparentヘッダーを解析するとパニックし、受信 HBONE 接続のタスクが終了していました。その接続で多重化されていたすべてのストリームが切断される問題も修正されました。
その他の記録済み変更 15 件すべてfixes 15
fixes (15)
- Fixed the JWKS resolver’s periodic background refresh caching a fetched response without validating that it looks like a JWKS.
- Fixed an istiod panic when outlierDetection was applied to a dynamic forward proxy (DFP) wildcard cluster.
- Fixed an issue where the istio-cni Helm chart did not respect the value set for istioOwnedCNIConfigFileName .
- Fixed an issue where updates to the istio-cni config via the Helm chart did not restart istio-cni to pick up the new values.
- Fixed an issue where, when uninstalling the istio-cni Helm chart, the owned istio-cni config was not removed or the primary CNI config did not have the istio-cni plugin removed.
- Fixed an issue where, when enabling the owned istio-cni config, the primary CNI config was not cleaned up.
- Fixed an issue where, when changing the owned istio-cni config filename, the previous filename was not removed.
- Fixed the source_app and destination_app metric labels to use the app pod label when a pod also has app.kubernetes.io/name . Since 1.29.1 they had used app.kubernetes.io/name , which is a regression from the intended behavior.
- Fixed a situation where fetching the JWKS could block xDS generation.
- Fixed AuthorizationPolicy ipBlocks and notIpBlocks matching on waypoint and sidecar HBONE internal listeners to use the downstream client’s direct remote IP address instead of the internal Envoy address.
- Fixed an issue where istio-cni skipped cleanup for an ambient pod deleted together with its namespace, leaving its ztunnel proxy and host probe ipset entry behind.
- Fixed an issue where a metadata-only update to an EndpointSlice , such as a GitOps tool writing an annotation, triggered an EDS push, and for headless Services with non-HTTP ports a push to every proxy, even though the endpoints were unchanged.
- Fixed istiod only tolerating the default cni.istio.io/not-ready taint. When taint.name is set to a custom taint, the istiod deployment now tolerates that taint, so istiod can be scheduled onto nodes that still carry it.
- Fixed an issue where a metadata-only update to an Istio config resource, such as a GitOps tool writing an annotation, triggered a push whenever the resource carried any istio.io label or annotation, for example istio.io/rev . A push is now triggered only when the spec or the value of an istio.io label or annotation changes.
- Fixed a regression where a Telemetry resource in a waypoint’s own namespace, selected by targetRefs or selector , was not applied when the waypoint served a Service in a different namespace.
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチも、その一例です。