Skip to content

fix(#2387): bump opentelemetry-api 1.51.0 → 1.62.0 (W3C Baggage CVE)#52

Merged
Skobeltsyn merged 1 commit into
mainfrom
sec/2387-otel-baggage-cve
May 25, 2026
Merged

fix(#2387): bump opentelemetry-api 1.51.0 → 1.62.0 (W3C Baggage CVE)#52
Skobeltsyn merged 1 commit into
mainfrom
sec/2387-otel-baggage-cve

Conversation

@Skobeltsyn
Copy link
Copy Markdown
Contributor

Dependabot alert #5: io.opentelemetry:opentelemetry-api <= 1.61.0 allows unbounded memory allocation and CPU consumption when parsing oversized baggage headers in W3CBaggagePropagator, JaegerPropagator, and OtTracePropagator. Because baggage auto-re-injects into outgoing requests, a single malicious header fans out across the downstream graph.

1.62.0 enforces caps consistent with the W3C Baggage spec at the propagator level: 8,192 bytes total, 64 entries. Over-limit headers are dropped at the cap point; already-extracted valid entries are retained.

Practical exposure for Agents.KT is limited — we expose OpenTelemetry only through the :agents-kt-otel adapter, and the adapter emits spans rather than parsing inbound baggage. Risk applies to downstream consumers who enable baggage propagation in their own SDK pipeline, especially on non-HTTP transports where transport-layer header limits don't apply.

The fix is a version bump:

  • agents-kt-otel/build.gradle.kts: 1.51.0 → 1.62.0 on both the production opentelemetry-api dependency and the testImplementation opentelemetry-sdk-trace.
  • gradle/verification-metadata.xml: refreshed via ./gradlew updateVerificationMetadata for the four pinned OTel components (api, context, sdk-common, sdk-trace) plus the new transitive opentelemetry-common 1.62.0. Stale 1.51.0 entries removed so the metadata file remains the authoritative current state.

./gradlew :agents-kt-otel:test: 7/7 green. No API surface changes between 1.51 and 1.62 affect our use; the adapter compiles + behaves unchanged.

Dependabot alert #5: io.opentelemetry:opentelemetry-api <= 1.61.0
allows unbounded memory allocation and CPU consumption when parsing
oversized baggage headers in W3CBaggagePropagator, JaegerPropagator,
and OtTracePropagator. Because baggage auto-re-injects into outgoing
requests, a single malicious header fans out across the downstream
graph.

1.62.0 enforces caps consistent with the W3C Baggage spec at the
propagator level: 8,192 bytes total, 64 entries. Over-limit headers
are dropped at the cap point; already-extracted valid entries are
retained.

Practical exposure for Agents.KT is limited — we expose OpenTelemetry
only through the `:agents-kt-otel` adapter, and the adapter emits
spans rather than parsing inbound baggage. Risk applies to downstream
consumers who enable baggage propagation in their own SDK pipeline,
especially on non-HTTP transports where transport-layer header limits
don't apply.

The fix is a version bump:

- agents-kt-otel/build.gradle.kts: 1.51.0 → 1.62.0 on both the
  production `opentelemetry-api` dependency and the testImplementation
  `opentelemetry-sdk-trace`.
- gradle/verification-metadata.xml: refreshed via
  `./gradlew updateVerificationMetadata` for the four pinned OTel
  components (api, context, sdk-common, sdk-trace) plus the new
  transitive `opentelemetry-common` 1.62.0. Stale 1.51.0 entries
  removed so the metadata file remains the authoritative current state.

`./gradlew :agents-kt-otel:test`: 7/7 green. No API surface changes
between 1.51 and 1.62 affect our use; the adapter compiles + behaves
unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Skobeltsyn Skobeltsyn merged commit bfe7d9a into main May 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant