NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
🐹
🐹 Go
Not in CISA KEV
HIGH severity

CVE-2026-29181 — otel

HIGHFix: open-telemetry/opentelemetry-go#7880

CVE-2026-29181 is a high-severity (CVSS 7.5) CWE-770 vulnerability in go.opentelemetry.io/otel. A fix is available for go.opentelemetry.io/otel — see the affected versions and patch details below.

OpenTelemetry-Go multi-value `baggage` header extraction causes excessive allocations (remote dos amplification)

Also known asGHSA-mh2q-q3fh-2475GO-2026-5506
Published
Updated
Affected
1 pkg
Patched
1 / 1
Exploits
None indexed
Exploitation data as of Nov 7, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

Proof-of-concept exploit code exists

  • CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
  • CISA assesses this as automatable — exploitation doesn’t require manual, per-target effort, which raises the odds of mass scanning and opportunistic attacks.

Exploitation and automatability from CISA’s SSVC triage for CVE-2026-29181.

EPSS Exploitation Probability

via FIRST.org ↗
0.8%probability of exploitation in next 30 days
Lower Risk+0.03%
Lower risk than most CVEs58th percentile — riskier than 58% of all scored CVEsHighest risk
0.00%0.46%0.92%1.37%0.1%0.8%May 26Sep 26Nov 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

How urgent is this, really

Where this sits among everything scored

Real-World Exposure

1 pkg affected
🐹go.opentelemetry.io/otel

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.

Description

multi-value baggage: header extraction parses each header field-value independently and aggregates members across values. this allows an attacker to amplify cpu and allocations by sending many baggage: header lines, even when each individual value is within the 8192-byte per-value parse limit.

severity

HIGH (availability / remote request amplification)

relevant links

vulnerability details

pins: open-telemetry/opentelemetry-go@1ee4a4126dbdd1bc79e9fae072fa488beffac52a as-of: 2026-02-04 policy: direct (no program scope provided)

callsite: propagation/baggage.go:58 (extractMultiBaggage) attacker control: inbound HTTP request headers (many baggage field-values) → propagation.HeaderCarrier.Values("baggage") → repeated baggage.Parse + member aggregation

root cause

extractMultiBaggage iterates over all baggage header field-values and parses each one independently, then appends members into a shared slice. the 8192-byte parsing cap applies per header value, but the multi-value path repeats that work once per header line (bounded only by the server/proxy header byte limit).

impact

in a default net/http configuration (max header bytes 1mb), a single request with many baggage: header field-values can cause large per-request allocations and increased latency.

example from the attached PoC harness (darwin/arm64; 80 values; 40 requests):

  • canonical: per_req_alloc_bytes=10315458 and p95_ms=7
  • control: per_req_alloc_bytes=133429 and p95_ms=0

proof of concept

canonical:

mkdir -p poc
unzip poc.zip -d poc
cd poc
make test

output (excerpt):

[CALLSITE_HIT]: propagation/baggage.go:58 extractMultiBaggage
[PROOF_MARKER]: baggage_multi_value_amplification p95_ms=7 per_req_alloc_bytes=10315458 per_req_allocs=16165

control:

cd poc
make control

control output (excerpt):

[NC_MARKER]: baggage_single_value_baseline p95_ms=0 per_req_alloc_bytes=133429 per_req_allocs=480

expected: multiple baggage header field-values should be semantically equivalent to a single comma-joined baggage value and should not multiply parsing/alloc work within the effective header byte budget. actual: multiple baggage header field-values trigger repeated parsing and member aggregation, causing high per-request allocations and increased latency even when each individual value is within 8192 bytes.

fix recommendation

avoid repeated parsing across multi-values by enforcing a global budget and/or normalizing multi-values into a single value before parsing. one mitigation approach is to treat multi-values as a single comma-joined string and cap total parsed bytes (for example 8192 bytes total).

fix accepted when: under the default PoC harness settings, canonical stays within 2x of control for per_req_alloc_bytes and per_req_allocs, and p95_ms stays below 2ms.

poc.zip PR_DESCRIPTION.md

Affected Packages

1 total 1 fixed
EcosystemPackageVulnerable rangeFix
🐹Gogo.opentelemetry.io/otel≥ 1.36.0&&< 1.41.01.41.0go get go.opentelemetry.io/otel@v1.41.0

Affected Products

1 product · 1 configurations
Application
opentelemetryopentelemetry
≥ 1.36.0 && < 1.41.0
range

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for go.opentelemetry.io/otel, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update go.opentelemetry.io/otel to 1.41.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2026-29181 is resolved across your whole dependency graph.

  3. Workarounds

    Cap what an attacker can consume: apply request size, rate and timeout limits in front of the affected component, and run it with memory and CPU limits so exhaustion degrades one worker rather than the whole service.

Fixing This On Your OS

If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.

Red HatImportant

This is an Important denial of service vulnerability in OpenTelemetry-Go, affecting Red Hat Multicluster Engine for Kubernetes. A remote attacker can exploit this flaw by sending multiple crafted `baggage` HTTP header lines, leading to excessive CPU and memory consumption and potentially rendering services…

ProductFixed inAdvisory
Cert Manager support for Red Hat OpenShift release 1.17cert-manager/cert-manager-operator-rhel9:1791788287RHSA-2026:82322
Cert Manager support for Red Hat OpenShift release 1.17cert-manager/cert-manager-istio-csr-rhel9:1791378395RHSA-2026:82336
Cert Manager support for Red Hat OpenShift release 1.19cert-manager/cert-manager-istio-csr-rhel9:1788348594RHSA-2026:63140
Cert Manager support for Red Hat OpenShift release 1.20cert-manager/cert-manager-istio-csr-rhel9:1790223719RHSA-2026:72395
Cert Manager support for Red Hat OpenShift release 1.20cert-manager/cert-manager-istio-csr-rhel9:1790589914RHSA-2026:72475
Cluster Observability Operator 1.5cluster-observability-operator/cluster-observability-rhel9-operator:1787593637RHSA-2026:61314
Logging Subsystem for Red Hat OpenShift 6.0openshift-logging/cluster-logging-rhel9-operator:1791830134RHSA-2026:83013
Logging Subsystem for Red Hat OpenShift 6.2openshift-logging/cluster-logging-rhel9-operator:1789050399RHSA-2026:68349

Frequently Asked Questions

multi-value `baggage:` header extraction parses each header field-value independently and aggregates members across values. this allows an attacker to amplify cpu and allocations by sending many `baggage:` header lines, even when each individual value is within the 8192-byte per-value parse limit. ## severity HIGH (availability / remote request amplification) ## relevant links - repository: https://github.com/open-telemetry/opentelemetry-go - pinned callsite: https://github.com/open-telemetry/opentelemetry-go/blob/1ee4a4126dbdd1bc79e9fae072fa488beffac52a/propagation/baggage.go#L58 ## vuln
O3 Security · Impact-Aware SCA

Is CVE-2026-29181 in your dependencies?

Find it across Go, including transitive dependencies.

CVE-2026-29181: otel — Fixed in 1.41.0