Skip to content

fix(security/high): update module go.opentelemetry.io/otel to v1.41.0 [security]#263

Open
renovate-sh-app[bot] wants to merge 1 commit into
mainfrom
renovate/go-go.opentelemetry.io-otel-vulnerability
Open

fix(security/high): update module go.opentelemetry.io/otel to v1.41.0 [security]#263
renovate-sh-app[bot] wants to merge 1 commit into
mainfrom
renovate/go-go.opentelemetry.io-otel-vulnerability

Conversation

@renovate-sh-app
Copy link
Copy Markdown
Contributor

@renovate-sh-app renovate-sh-app Bot commented Apr 24, 2026

This PR contains the following updates:

Package Change Age Confidence
go.opentelemetry.io/otel v1.40.0v1.41.0 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


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

CVE-2026-29181 / GHSA-mh2q-q3fh-2475

More information

Details

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@1ee4a41
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

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


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

CVE-2026-29181 / GHSA-mh2q-q3fh-2475

More information

Details

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@1ee4a41
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

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Release Notes

open-telemetry/opentelemetry-go (go.opentelemetry.io/otel)

v1.41.0

Compare Source


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • ""
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

Need help?

You can ask for more help in the following Slack channel: #proj-renovate-self-hosted. In that channel you can also find ADR and FAQ docs in the Resources section.

@renovate-sh-app
Copy link
Copy Markdown
Contributor Author

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 2 additional dependencies were updated

Details:

Package Change
go.opentelemetry.io/otel/trace v1.40.0 -> v1.41.0
go.opentelemetry.io/otel/metric v1.40.0 -> v1.41.0

@renovate-sh-app renovate-sh-app Bot changed the title fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] - autoclosed Apr 27, 2026
@renovate-sh-app renovate-sh-app Bot closed this Apr 27, 2026
@renovate-sh-app renovate-sh-app Bot deleted the renovate/go-go.opentelemetry.io-otel-vulnerability branch April 27, 2026 16:18
@renovate-sh-app renovate-sh-app Bot changed the title fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] - autoclosed fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] Apr 27, 2026
@renovate-sh-app renovate-sh-app Bot reopened this Apr 27, 2026
@renovate-sh-app renovate-sh-app Bot force-pushed the renovate/go-go.opentelemetry.io-otel-vulnerability branch 3 times, most recently from 2b703c5 to 36ef19d Compare April 30, 2026 19:18
@renovate-sh-app renovate-sh-app Bot changed the title fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] - autoclosed May 7, 2026
@renovate-sh-app renovate-sh-app Bot closed this May 7, 2026
@renovate-sh-app renovate-sh-app Bot changed the title fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] - autoclosed fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] May 7, 2026
@renovate-sh-app renovate-sh-app Bot reopened this May 7, 2026
@renovate-sh-app renovate-sh-app Bot force-pushed the renovate/go-go.opentelemetry.io-otel-vulnerability branch 5 times, most recently from 7f2dd51 to bda0dae Compare May 12, 2026 19:24
@renovate-sh-app renovate-sh-app Bot changed the title fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] - autoclosed May 14, 2026
@renovate-sh-app renovate-sh-app Bot closed this May 14, 2026
… [security]

| datasource | package                  | from    | to      |
| ---------- | ------------------------ | ------- | ------- |
| go         | go.opentelemetry.io/otel | v1.40.0 | v1.41.0 |


Signed-off-by: renovate-sh-app[bot] <219655108+renovate-sh-app[bot]@users.noreply.github.com>
@renovate-sh-app renovate-sh-app Bot changed the title fix(deps): update module go.opentelemetry.io/otel to v1.41.0 [security] - autoclosed fix(security/high): update module go.opentelemetry.io/otel to v1.41.0 [security] May 15, 2026
@renovate-sh-app renovate-sh-app Bot reopened this May 15, 2026
@renovate-sh-app renovate-sh-app Bot force-pushed the renovate/go-go.opentelemetry.io-otel-vulnerability branch 2 times, most recently from bda0dae to 98e8212 Compare May 15, 2026 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants