Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en OpenTelemetry-Go Contrib (CVE-2023-45142)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
12/10/2023
Última modificación:
19/02/2024

Descripción

OpenTelemetry-Go Contrib es una colección de paquetes de terceros para OpenTelemetry-Go. Un contenedor de controlador listo para usar agrega etiquetas `http.user_agent` y `http.method` que tienen cardinalidad independiente. Conduce al posible agotamiento de la memoria del servidor cuando se le envían muchas solicitudes maliciosas. Un atacante puede configurar fácilmente el encabezado HTTP User-Agent o el método HTTP para solicitudes para que sea aleatorio y largo. La librería utiliza internamente `httpconv.ServerRequest` que registra cada valor para el `method` HTTP y el `User-Agent`. Para verse afectado, un programa debe utilizar el contenedor `otelhttp.NewHandler` y no filtrar ningún método HTTP desconocido o agentes de usuario en el nivel de CDN, LB, middleware anterior, etc. La versión 0.44.0 solucionó este problema cuando el Los valores recopilados para el atributo `http.request.method` se cambiaron para restringirlos a un conjunto de valores conocidos y se eliminaron otros atributos de alta cardinalidad. Como workaround para dejar de verse afectado, se puede utilizar `otelhttp.WithFilter()`, pero requiere una configuración manual cuidadosa para no registrar ciertas solicitudes por completo. Para mayor comodidad y uso seguro de esta librería, debería marcar de forma predeterminada con la etiqueta "unknown" los métodos HTTP no estándar y los agentes de usuario para mostrar que dichas solicitudes se realizaron pero no aumentan la cardinalidad. En caso de que alguien quiera seguir con el comportamiento actual, la API de la librería debería permitir habilitarlo.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:opentelemetry:opentelemetry:*:*:*:*:*:go:*:* 0.44.0 (excluyendo)