ISTIO-SECURITY-2026-006
CVEs reportados por Envoy, una denegación de servicio en el control plane mediante EnvoyFilter y un fallo abierto de BackendTLSPolicy en sidecars.
| Detalles de la divulgación | |
|---|---|
| CVE(s) | CVE-2026-73513 CVE-2026-73552 CVE-2026-73512 CVE-2026-73547 CVE-2026-73549 CVE-2026-50572 CVE-2026-73546 CVE-2026-48521 CVE-2026-73551 CVE-2026-73511 CVE-2026-73548 CVE-2026-73550 CVE-2026-73553 |
| Puntuación de impacto CVSS | 7.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:N/A:H |
| Versiones afectadas | 1.29.0 to 1.29.6 1.30.0 to 1.30.3 |
CVE
CVEs de Envoy
- CVE-2026-73513: (CVSS score 7.5): Se corrigió un heap use-after-free donde un upstream no confiable podía enviar trailers de respuesta HTTP/2 sin el flag
END_STREAMa una instancia de Envoy que utilizaoghttp2, corrompiendo el estado del stream y terminando el proceso. - CVE-2026-73552: (CVSS score 7.5): Se corrigió un problema donde la coincidencia con
safe_regextrataba los bytes de cabeceras HTTP no UTF-8 aceptados como una no-coincidencia; en políticas RBAC que usan coincidencia negativa, esto podía fallar abierto y permitir acceso a un recurso protegido. - CVE-2026-73512: (CVSS score 7.5): Se corrigió un use-after-free en el manejador de datagramas HTTP QUIC donde los datagramas HTTP/3 tardíos podían referenciar un decodificador de stream que ya había sido destruido o reemplazado.
- CVE-2026-73547: (CVSS score 7.5): Se corrigió una terminación anormal del proceso en el filtro
ext_authzal procesar solicitudes CONNECT sin un pseudo-header:path. - CVE-2026-73549: (CVSS score 5.3): Se corrigió una terminación anormal del proceso para direcciones de cliente IPv6 con ámbito en clústeres de DST original con HTTP/3.
- CVE-2026-50572: (CVSS score 5.9): Se corrigió un use-after-free en el cliente HTTP sin procesar de
ext_authzdonde completar una solicitud de autorización podía destruir el cliente mientras su manejador de finalización aún se estaba ejecutando. - CVE-2026-73546: (CVSS score 7.4): Se corrigió un problema de cross-site scripting almacenado en la interfaz de estadísticas HTML (
/stats?format=html) donde las estadísticas con nombres dinámicos podían introducir contenido controlado por el atacante. - CVE-2026-48521: (CVSS score 5.9): Se corrigió una terminación anormal del proceso donde Envoy podía desreferenciar opciones de socket de transporte nulas durante la selección del pool de conexiones HTTP/3 basada en ALPN.
- CVE-2026-73551: (CVSS score 5.3): Se corrigió la normalización de URL de segmentos de ruta punto y punto-punto que contenían parámetros, lo que podía causar que los componentes de control de acceso y las aplicaciones upstream interpretaran una ruta de solicitud de forma diferente.
- CVE-2026-73511: (CVSS score 5.3): Se corrigió la coincidencia de rutas para rutas que contenían parámetros por segmento, donde Envoy y los backends podían seleccionar recursos diferentes para la misma solicitud y eludir la selección basada en rutas o la autenticación.
- CVE-2026-73548: (CVSS score 7.5): Se corrigió el envenenamiento de respuestas entre usuarios que involucraba actualizaciones HTTP genéricas sin WebSocket, donde el payload de solicitud enviado antes de que se aceptara una actualización podía contaminar una conexión upstream compartida.
- CVE-2026-73550: (CVSS score 7.5): Se corrigió un problema de agotamiento de memoria en HTTP/2 donde las cabeceras Host duplicadas descartadas no se contabilizaban en los límites de tamaño y número de cabeceras de solicitud.
- CVE-2026-73553: (CVSS score 7.5): Se corrigió un bypass de autorización cuando
ignore_path_parameters_in_path_matchingestaba habilitado, donde una ruta como/admin;xpodía eludir una política RBAC para/adminmientras seguía alcanzando la ruta protegida.
CVEs de Istio
- GHSA-qm8v-g4f9-qhjx (CVSS score 6.8, Moderate):
BackendTLSPolicyfalla abierto hacia texto plano en proxies sidecar cuando su referencia de CA no está resuelta. Reportado por @thc1006.
Denegación de servicio en el control plane mediante EnvoyFilter proxyVersion
La expresión de coincidencia proxyVersion en el recurso EnvoyFilter (spec.configPatches[].match.proxy.proxyVersion) aceptaba una expresión regular de longitud ilimitada. Istiod compila esta expresión durante la validación de admisión y nuevamente durante la distribución de configuración. Un usuario con permiso para crear recursos EnvoyFilter en un único namespace podía enviar expresiones muy largas que provocaban un uso excesivo de memoria y CPU en istiod, pudiendo colapsar el control plane. Dado que el webhook de validación está configurado para fallar cerrado, los cambios de configuración para todos los namespaces de la mesh se rechazan mientras istiod no está disponible, extendiendo el impacto más allá del propio namespace del atacante.
Las versiones anteriores de Istio sin soporte también están afectadas.
La expresión de coincidencia proxyVersion ahora está limitada a 1024 caracteres.
¿Estoy afectado?
CVEs de Envoy: Estás potencialmente afectado si ejecutas una versión afectada de Istio, que incluye el proxy Envoy afectado. La exposición específica depende de las funcionalidades en uso (por ejemplo, HTTP/3,
ext_authz, RBAC o la interfaz de estadísticas de administración); consulta cada CVE anterior.Denegación de servicio en EnvoyFilter: Estás afectado si se permite a usuarios que no son administradores de la mesh crear o actualizar recursos
EnvoyFilter, por ejemplo en entornos multi-tenant basados en namespaces. Las meshes donde solo los administradores pueden gestionar recursosEnvoyFilterno están expuestas a entradas no confiables, pero de todos modos deben actualizar.Fallo abierto de
BackendTLSPolicy: Estás afectado si utilizas unBackendTLSPolicypara tráfico upstream de la mesh (sidecar) y elcaCertificateRefsde la política puede volverse irresoluble (por ejemplo, elConfigMapreferenciado se elimina, renombra o está ausente). En ese caso, el sidecar envía el tráfico upstream en texto plano en lugar de bloquearlo, perdiendo el cifrado y la validación de CA que requería la política. Los proxies Gateway (ingress) no están afectados; fallan cerrado.
Mitigación
- Para usuarios de Istio 1.30: actualiza a 1.30.4 o posterior.
- Para usuarios de Istio 1.29: actualiza a 1.29.7 o posterior.
- Como medida provisional para la denegación de servicio en
EnvoyFilter, restringe los permisos de creación y actualización deEnvoyFiltera administradores de confianza usando RBAC de Kubernetes.
El Comité de Seguridad de Istio agradece a Artem Cherezov y @thc1006 por divulgar responsablemente estos problemas.