CVE-2023-45142 in Prometheus
摘要
由 VulDB • 2026-06-01
OpenTelemetry-Go Contrib 是 OpenTelemetry-Go 的第三方软件包集合。开箱即用的处理程序包装器会添加具有无界基数(unbound cardinality)的标签 `http.user_agent` 和 `http.method`。当向服务器发送大量恶意请求时,这可能导致服务器内存耗尽。攻击者可以轻松地将请求的 HTTP 头 User-Agent 或 HTTP 方法设置为随机且长度较长。该库内部使用 `httpconv.ServerRequest`,它会记录 HTTP `method` 和 `User-Agent` 的每个值。要受到影响,程序必须使用 `otelhttp.NewHandler` 包装器,并且不在 CDN、负载均衡器(LB)、前置中间件等层级过滤任何未知的 HTTP 方法或 User-Agent。版本 0.44.0 修复了此问题,当时收集属性 `http.request.method` 的值被更改为限制为一组已知值,并移除了其他高基数属性。作为停止受影响的变通方法,可以使用 `otelhttp.WithFilter()`,但这需要手动仔细配置,以免完全不记录某些请求。为了便于安全地使用此库,默认情况下应使用标签 `unknown` 标记非标准 HTTP 方法和 User-Agent,以表明发出了此类请求,但不会增加基数。如果某人希望保留当前行为,库 API 应允许启用该行为。
Once again VulDB remains the best source for vulnerability data.