Istio
1.31.4Networking & Messagingセキュリティ修正を中心としたメンテナンスリリースです。運用上の不具合修正や性能改善に加え、ambient east-west gateway向けの新しい機能が含まれます。
影響確認 (7)
securityambient modeのポート単位
STRICTポリシー適用を修正mesh-wideの
STRICTポリシーと、ワークロードモードPERMISSIVEまたはDISABLEを使うambient mode環境に該当する場合です。ambient modeで、mesh-wideの
STRICTポリシーとワークロードモードPERMISSIVEまたはDISABLEを組み合わせた場合、ポート単位で設定したSTRICTのPeerAuthenticationが適用されず、mTLSが必要なポートに平文トラフィックが到達することがありました。この判定不具合を修正しました。securityホストヘッダー条件の大文字小文字を区別しない判定
request.またはheaders[:authority] request.を条件にしたheaders[host] AuthorizationPolicyを使っている場合です。request.またはheaders[:authority] request.を条件にしたheaders[host] AuthorizationPolicyがホスト名の大文字と小文字を区別して判定していたため、表記の異なるホスト名のリクエストでポリシーを回避できることがありました。これらの条件をホスト名と同じく大文字と小文字を区別せずに判定するよう修正しました。security古いconntrackエントリによる
sidecar proxy回避を修正sidecar proxyが、切断済み接続と同じ4タプルを再利用する新しい受信接続を受ける場合です。切断済み接続と同じ4タプルを再利用する新しい受信接続が、古いconntrackの
ESTABLISHEDエントリに一致してsidecar proxyを経由しないことがありました。この接続判定の不具合を修正しました。security不正なリソース名による
istiodのクラッシュを修正mesh identityを持つワークロードが、URL解析に失敗するリソース名を含む
istio.xDSリクエストを送る場合です。io/debug mesh identityを持つワークロードが、URL解析に失敗するリソース名を含む
istio.xDSリクエストを送ると、io/debug istiodがクラッシュし、メッシュ全体のコントロールプレーンがクラッシュループに陥ることがありました。この問題を修正しました。security空の
toまたはfromを含むAuthorizationPolicyによるクラッシュを修正空の
toまたはfromエントリを含むAuthorizationPolicyをambient modeで使っている場合です。ambient modeで、空の
toまたはfromエントリを持つAuthorizationPolicyがバリデーションWebhookに拒否されない場合、istiodがクラッシュループに入り、ポリシーを削除するまでメッシュ全体への設定配布が停止することがありました。この問題を修正しました。securityマルチクラスタ環境での
CLUSTER_IDなりすましを修正マルチクラスタ構成を使っている場合です。
マルチクラスタ構成で、プロキシが別クラスタの
CLUSTER_IDを名乗り、そのクラスタのkubernetes://シークレットをSDS経由で受け取れることがありました。このクラスタ識別の問題を修正しました。security不正な
traceparentによるztunnelのパニックを修正受信HBONE接続で、4つのハイフン区切りフィールドを持たない55バイトの
traceparentヘッダーをztunnelが受け取る場合です。ztunnelが、4つのハイフン区切りフィールドを含まない55バイトのtraceparentヘッダーを解析するとパニックを起こし、受信HBONE接続のタスクを終了させて、その接続で多重化されたすべてのストリームを切断することがありました。この解析処理を修正しました。
その他の記録済み変更 17 件すべてfixes 16 · additions 1
fixes (16)
- 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 introduced in Istio 1.31 where a change to a ConfigMap containing CA certificates, such as the kube-root-ca.crt ConfigMap that Kubernetes creates in every namespace, triggered CDS, LDS, RDS, and NDS pushes to every proxy.
- 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 .
- 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.
additions (1)
- Added support for AUTO_PASSTHROUGH listeners on ambient east-west gateways ( istio-east-west GatewayClass ).
対応が必要なリリースが出たときに、週次メールでお知らせします。 今回のセキュリティパッチも、その一例です。