Istio
1.30.6Networking & MessagingA security-focused maintenance release with fixes for vulnerability paths, stricter handling in several security-sensitive components, and broader correctness and reliability work. It also includes changes affecting gateway validation, Kubernetes API request handling, ambient behavior, routing, platform integration, and dependency stability.
Action needed (1)
securityExact
proxyIDmatching inistioddebug endpointsistioddebug endpoints, including/debug/config_dump,/debug/edsz, and the XDSistio.type, now require an exactio/debug/config_dump proxyIDmatch. A partial ID no longer lets a caller read another proxy's configuration in the same namespace.
Check if affected (8)
securityGHSA-8vc2-jrm4-835w in the OAuth2 HTTP filter
Applies if you use the OAuth2 HTTP filter.
GHSA-8vc2-jrm4-835w fixes an unauthenticated remote crash in the OAuth2 HTTP filter when a CONNECT request lacks a
:pathheader. The fix ships in the OAuth2 HTTP filter.securityGHSA-47vj-9r25-wv5j in the
api_key_authHTTP filterApplies if you use the
api_key_authHTTP filter.GHSA-47vj-9r25-wv5j fixes a crash in the
api_key_authHTTP filter when a CONNECT request lacks a:pathheader. The fix ships in theapi_key_authHTTP filter.security
AuthorizationPolicymethod matching over HTTP/2Applies if you configure
AuthorizationPolicyand use HTTP/2.GHSA-w44g-8m76-8gc5 fixes
AuthorizationPolicymethod rules being bypassed over HTTP/2 when the method case changes. The fix ships in HTTP/2 authorization handling.security
istiodstability for IP-addressed waypointsApplies if you run in ambient mode and configure
ServiceEntry.GHSA-7p2q-4xvg-vxc6 fixes an
istiodcrash in ambient mode when aServiceEntryor another service claims the address of an IP-addressed waypoint. The fix ships in ambient-modeistiodprocessing.securityQuoted values in
istioctl manifest translatescriptsApplies if you use
istioctl manifest translateand run its generated install shell scripts.istioctl manifest translatenow quotes values from IstioOperator input, such as the namespace and release name, in generated install shell scripts. This prevents crafted values from injecting additional shell commands when the scripts run.security
CreateCertificateerror details on the Kubernetes CSR RA pathApplies if you configure
EXTERNAL_CA=ISTIOD_RA_KUBERNETES_API.CreateCertificateno longer returns raw Kubernetes API error text on the experimental Kubernetes CSR RA path. The change prevents CSR names, signer names, andistiod's identity from being exposed throughEXTERNAL_CA=ISTIOD_RA_KUBERNETES_API.securityHTTPS-only fallback behavior for the Wasm OCI image fetcher
Applies if you use the Wasm OCI image fetcher.
The Wasm OCI image fetcher no longer retries a failed HTTPS fetch over plaintext HTTP based on the registry error. This removes the registry-controlled fallback that could force plaintext transport and serve an arbitrary Wasm binary when no module digest was pinned.
breaking
MAX_RA_WORKLOAD_CERT_TTLcertificate lifetime capApplies if you configure
EXTERNAL_CA=ISTIOD_RA_KUBERNETES_API.Client-requested
ValidityDurationis now capped by the newMAX_RA_WORKLOAD_CERT_TTLenvironment variable, which defaults to 48h, on the experimental Kubernetes CSR RA path. This replaces the previous allowance up toMAX_WORKLOAD_CERT_TTL, which defaults to 90d; deployments that request certificates with a TTL above 48h on this path should raiseMAX_RA_WORKLOAD_CERT_TTL.
All 16 other recorded changesfixes 12 · additions 3 · defaults 1
fixes (12)
- - Fixed a panic in istiod when the OIDC/JWT authenticator received a token with a malformed sub claim.
- - Fixed the Kubernetes CSR watch loop using an abandoned time.After timer that could leave a goroutine running past request completion on the experimental Kubernetes CSR RA path ( EXTERNAL_CA=ISTIOD_RA_KUBERNETES_API ).
- - Fixed an HTTPRoute rule with several InferencePool backendRefs configuring only one endpoint picker.
- - Fixed two HTTPRoute s sharing a rules[].name on the same gateway overwriting each other’s endpoint picker.
- - Fixed a route rule losing its InferencePool endpoint picker when it also carried a CORS filter.
- - Fixed sidecar proxy UID/GID resolution on OpenShift for workloads bound to a custom SecurityContextConstraint with a narrow or explicitly-configured UID range, which the namespace’s preallocated UID range annotation does not advertise.
- - Fixed an issue where, with PILOT_FILTER_GATEWAY_CLUSTER_CONFIG enabled, incremental CDS pushes removed gateway clusters for Services listed in the envoyfilter.istio.io/referenced-services annotation of an EnvoyFilter .
- - Fixed a bug where an internal listener was incorrectly created when the listener is of HTTPS or TLS but without a TLS section defined.
- - Fixed removing a single event handler from a CRD-backed informer removing every handler on that informer.
- - Fixed an issue where EDS-irrelevant configuration updates coalesced with an endpoint update caused full EDS generation instead of updating only the affected endpoint assignments.
- - Fixed ztunnel crash-looping with exit code 133 ( SIGTRAP ) on arm64 nodes whose CPUs provide the RNDR instruction, such as GKE Axion, when the hardware random number generator reported a transient failure. aws-lc-rs is updated to 1.18.2, which retries the read instead of aborting.
- Fixed an issue where the pre-marshaled workload used for change detection and versioning in ambient was not stable
additions (3)
- - Improved Added PILOT_ENABLE_STRICT_GATEWAY_MERGING to prevent cross-namespace merging of Istio Gateways with managed GatewayAPI Gateways.
- - Added a validation warning for ServiceEntry addresses that are catch-all ( 0.0.0.0 , :: ), have an unspecified network ( 0.0.0.0/N , ::/N ), or are a CIDR with a prefix shorter than /8 .
- Each timeout is logged as a warning and counted by the kube_client_deadline_fired_total metric.
defaults (1)
- - Fixed Istio components hanging indefinitely when a Kubernetes API request gets no response, for example when a load balancer or proxy silently drops the return path. Previously such a request could stay open forever, stalling the controller that issued it until the process restarted. Requests now time out on the client side, so a stuck request is canceled and the component recovers on its own.
A weekly email arrives when a release needs action. Like the security patches and breaking changes in this release.