CVE-2026-29181OpenTelemetry-Go 是 OpenTelemetry 的 Go 语言实现。在版本 1.36.0 至 1.40.0 中,存在一个安全漏洞。该漏洞与多值 baggage header 的提取逻辑有关。系统在解析时会独立处理每个 header 字段值并聚合成员。尽管单个值受到 8192 字节的解析限制,但攻击者可以通过发送大量 baggage header 行来绕过此限制,从而导致 CPU 资源耗尽和内存分配激增。该漏洞在版本 1.41.0 中已被修复。
该漏洞的根源在于 OpenTelemetry-Go 对 HTTP 头中 `baggage` 字段的处理机制。当处理多值 baggage header 时,解析器会逐个解析每个 header 字段值,并将解析出的成员进行聚合。虽然代码中存在针对单个 header 值 8192 字节的长度限制,以防止单次解析过载,但并未限制 header 的数量。攻击者利用这一逻辑缺陷,可以在 HTTP 请求中包含成百上千个 `baggage` header 行。由于每个 header 都会被独立解析并累积处理,这会导致服务端 CPU 负载急剧增加和内存分配请求暴涨,最终触发拒绝服务,使合法用户无法访问服务。