Anuncio de Istio 1.30.4
Parche de Istio 1.30.4.
Esta versión contiene correcciones de seguridad. Estas notas de versión describen las diferencias entre Istio 1.30.3 e Istio 1.30.4.
ANTES DE ACTUALIZAR
Cosas que debes saber y preparar antes de actualizar.
DESCARGAR
Descarga e instala esta versión.
DOCUMENTACIÓN
Visita la documentación de esta versión.
CAMBIOS EN EL CÓDIGO FUENTE
Inspecciona el conjunto completo de cambios en el código fuente.
Actualización de seguridad
Para más información, consulta ISTIO-SECURITY-2026-006.
CVEs de Envoy
- CVE-2026-73513: (puntuación CVSS 7.5): Corregido un heap use-after-free en
oghttp2cuando se reciben trailers HTTP/2 sin el flagEND_STREAM. - CVE-2026-73552: (puntuación CVSS 7.5): Corregido un error donde
safe_regexfallaba en modo fail-open ante bytes de cabecera no UTF-8 en políticas RBAC de coincidencia negativa. - CVE-2026-73512: (puntuación CVSS 7.5): Corregido un use-after-free en el gestor de datagramas HTTP QUIC.
- CVE-2026-73547: (puntuación CVSS 7.5): Corregida la terminación anormal en
ext_authzal gestionar solicitudes CONNECT sin cabecera:path. - CVE-2026-73549: (puntuación CVSS 5.3): Corregida la terminación anormal para direcciones de cliente IPv6 con ámbito con HTTP/3.
- CVE-2026-50572: (puntuación CVSS 5.9): Corregido un use-after-free en el cliente HTTP raw de
ext_authz. - CVE-2026-73546: (puntuación CVSS 7.4): Corregida una vulnerabilidad de cross-site scripting almacenado en la interfaz de estadísticas HTML.
- CVE-2026-48521: (puntuación CVSS 5.9): Corregida una desreferencia de puntero nulo durante la selección del pool de conexiones HTTP/3 basada en ALPN.
- CVE-2026-73551: (puntuación CVSS 5.3): Corregida la normalización de URL de segmentos de ruta punto y punto-punto con parámetros.
- CVE-2026-73511: (puntuación CVSS 5.3): Corregida la coincidencia de rutas para parámetros por segmento.
- CVE-2026-73548: (puntuación CVSS 7.5): Corregido el envenenamiento de respuestas entre usuarios en actualizaciones HTTP genéricas.
- CVE-2026-73550: (puntuación CVSS 7.5): Corregido el agotamiento de memoria HTTP/2 mediante cabeceras Host duplicadas descartadas.
- CVE-2026-73553: (puntuación CVSS 7.5): Corregido un bypass de RBAC mediante
ignore_path_parameters_in_path_matching.
CVEs de Istio
- GHSA-qm8v-g4f9-qhjx (puntuación CVSS 6.8, Moderada):
BackendTLSPolicyfalla en modo fail-open a texto plano en proxies sidecar cuando su referencia CA no está resuelta.
Otras correcciones de seguridad de Istio
- Corregido un vacío de validación en
EnvoyFilterdonde una expresión de coincidenciaproxyVersionsin límite podía provocar un uso excesivo de memoria y CPU en istiod durante la compilación de expresiones regulares. La expresión de coincidencia ahora está limitada a 1024 caracteres. Crédito: Este problema fue reportado porArtem Cherezov.
Cambios
Corregido un deadlock donde el pod del agente de nodo istio-cni podía no arrancar (por ejemplo, tras un reinicio del nodo) porque el plugin CNI solo omitía la creación del cliente de Kubernetes para su propio pod agente cuando el modo ambient estaba habilitado. La verificación preventiva ahora también se ejecuta en modo sidecar, de modo que el pod del agente ya no se bloquea en un kubeconfig que aún no ha escrito. (Issue #60668)
Corregido un error donde el gateway de red de un clúster remoto podía desaparecer del enrutamiento cross-network tras la rotación de credenciales y no recuperarse hasta que istiod se reiniciara. El intercambio de registro en su lugar ahora vuelve a conectar el nuevo registro a los manejadores del controlador agregado para que sus futuros eventos de gateway y servicio se propaguen, y recarga los gateways una vez para recoger los descubiertos durante la sincronización previa al intercambio. (Issue #60920)
Corregido un problema en despliegues multiclúster donde rotar el
istio-remote-secretde un clúster remoto podía borrar permanentemente los shards de endpoints para servicios con endpoints estables en ese clúster, haciéndolos inalcanzables entre clústeres hasta que istiod se reiniciara. (Issue #61043)Corregida una condición de carrera al inicio de istiod donde la sonda de disponibilidad podía reportar listo antes de que el servidor webhook HTTPS dedicado de inyección y validación (
--httpsAddr, por defecto:15017) estuviera aceptando conexiones, causando timeouts intermitentes defailed calling webhookal crear recursos inmediatamente después de que istiod estuviera listo. Esto no afecta a los despliegues donde los webhooks comparten el servidor HTTP principal (--httpsAddrvacío). (Issue #61049)Corregido un problema donde los gateways de ingreso omitían los proxies waypoint para servicios multiclúster cuando los workloads remotos estaban en una red diferente, causando que las políticas de autorización no se aplicaran. (Issue #61092)
Corregido un problema donde los recursos
Deploymentdel proxy gateway podían fallar permanentemente al crearse durante el inicio de istiod. (Issue #61095)Corregido un problema donde un pod seleccionado por un
workloadSelectordeServiceEntrypodía arrancar sin ese servicio en la configuración entrante de su sidecar. El tráfico al puerto no se gestionaba como el protocolo declarado en elServiceEntry, y laPeerAuthenticationa nivel de puerto no se aplicaba. El pod no se recuperaba por sí solo; solo reiniciar istiod lo reparaba. (Issue #61157)Corregido un problema donde
istio-cniconsideraba los podshostNetworkelegibles para la inscripción en ambient. (Issue #61168)Corregida una fuga de descriptores de archivo en el agente de nodo
istio-cni: cuando el escaneo deprocfsencontraba más de un namespace de red para el mismo pod, el descriptor de archivo netns del candidato perdedor se descartaba sin cerrarlo, anclando el namespace en el kernel hasta la recolección de basura.Corregidos los proveedores SDS externos configurados mediante
extensionProviderspara usar el nombre de host de servicio configurado como autoridad gRPC.Corregida una fuga de goroutine en la elección de líder de istiod donde cada ciclo de elección (liderazgo perdido y readquirido) filtraba una goroutine hasta la salida del proceso. (Issue #60843)
Corregido un problema donde el uso de CPU de istiod aumentaba a medida que aumentaba el número de recursos
AuthorizationPolicy. (Issue #61254)Corregida la resolución de conflictos de
ListenerSetpara conflictos de nombre de host y protocolo. Los listeners en conflicto ahora se rechazan correctamente y las condiciones de estado deListenerSetse reportan en conformidad con la Gateway API 1.5. (PR #60775)Corregido un error donde una reconexión de ztunnel (como el reciclado periódico de conexiones de
keepaliveMaxServerConnectionAge) desencadenaba un push completo de workload (WDS). Istiod ahora asigna a cada recurso WDS una versión basada en contenido y, cuando un cliente que se reconecta reporta las versiones que ya tiene medianteinitial_resource_versions, reenvía únicamente los recursos que cambiaron mientras el cliente estaba desconectado. Las versiones antiguas de ztunnel que no reportan versiones continúan recibiendo el conjunto completo. (Issue #1966)Corregido el generador
apide XDS (servicio de configuración MCP) para requerir una identidad de control plane verificada. Anteriormente, cualquier cliente que pudiera llegar al puerto XDS de Istiod podía leer la configuración de Istio en todos los namespaces.ENABLE_XDS_API_GENERATOR_AUTH=truepor defecto; deshabilita conENABLE_XDS_API_GENERATOR_AUTH=falsesi es necesario para compatibilidad.Corregido un problema de la Gateway API donde un
certificateRefocaCertificateRefTLS cross-namespace se resolvía antes de la verificación de autorización deReferenceGrant, de modo que el estadoResolvedRefsde un listener podía revelar si elSecretoConfigMapreferenciado existía incluso cuando ningún grant permitía la referencia. La autorización ahora se ejecuta primero, devolviendoRefNotPermittedpara cualquier referencia cross-namespace no permitida por un grant. Crédito: Este problema fue reportado por Darryl Jaskolski.Corregida una brecha de SSRF en la obtención de
jwksUrideRequestAuthenticationde istiod. istiod ahora bloquea las direcciones de enlace local y de metadatos de nube conocidas (como169.254.169.254) a nivel de dial de forma predeterminada y rechaza las respuestas obtenidas que no son un JWKS válido. Los rangos privados y de loopback siguen siendo accesibles y pueden bloquearse conBLOCKED_CIDRS_IN_JWKS_URIS.Corregidas varias anotaciones
sidecar.istio.io/*(proxyImage,bootstrapOverride,logLevel,componentLogLevel,agentLogLevel) que se interpolaban en las plantillas de inyección de sidecar/gateway sin escapar la salida, lo que podía permitir que un valor de anotación diseñado maliciosamente inyectara campos adicionales en el spec del pod o despliegue generado. Estas anotaciones ahora se escapan de forma consistente en cada punto de inserción de la plantilla. Crédito: Esta vulnerabilidad fue descubierta y reportada porlocalhost-detect.