ZeroHour

CVE-2026-50270

large

Unauthenticated DoS via Unbounded Baggage Header Parsing in Datadog dd-trace-java

CVSS 3.1
7.5 high
EPSS
Published
()
Modified
AI analysis

Datadog's Java APM client dd-trace-java, in versions prior to 1.62.0, fails to enforce the configured baggage limits (DD_TRACE_BAGGAGE_MAX_ITEMS, default 64, and DD_TRACE_BAGGAGE_MAX_BYTES, default 8192) when extracting W3C baggage headers, even though those limits are applied during injection. A remote, unauthenticated attacker can exploit this by sending an HTTP request carrying a baggage header containing a very large number of comma-separated key-value pairs or a single oversized value, causing the tracer to allocate map entries while parsing the attacker-controlled header on every request. The result is unbounded CPU and memory consumption in any HTTP service where baggage propagation is enabled (the default for most affected tracers), leading to denial of service with no confidentiality or integrity impact (CVSS 3.1: 7.5, CWE-770). All users running dd-trace-java before 1.62.0 with baggage propagation enabled are affected. The issue is fixed in version 1.62.0; it is not listed in CISA's KEV and no public proof of concept or observed exploitation is known.

What to do: Upgrade dd-trace-java (and the bundled dd-java-agent) to version 1.62.0 or later, which enforces the baggage item and byte limits during extraction. If immediate upgrade is not possible, disable baggage propagation by removing 'baggage' from the propagation style (e.g., set DD_TRACE_PROPAGATION_STYLE to tracecontext,B3 without baggage) or enforce ingress controls (WAF or load balancer rules capping the size and item count of the baggage header). Monitor traced Java services for unexplained CPU and memory spikes correlated with inbound requests.

Affected
Datadog dd-trace-javaall versions prior to 1.62.0
Estimated exposure
large≈100,000–1,000,000 instrumented Java services (order-of-magnitude estimate) — Datadog reports roughly 30,000+ paying customers, many of whom run multiple Java services with the tracer embedded by default in the agent, suggesting hundreds of thousands of traced Java workloads — though only the subset reachable via…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

dd-trace-java is a Datadog APM client for Java. Prior to 1.62.0, W3C baggage extraction does not enforce DD_TRACE_BAGGAGE_MAX_ITEMS, which defaults to 64, or DD_TRACE_BAGGAGE_MAX_BYTES, which defaults to 8192, although those limits apply during baggage injection. A remote unauthenticated attacker can send a baggage HTTP header containing many comma-separated key-value pairs or a single very large value. The extraction path allocates map entries while parsing the attacker-controlled header on every request, causing unbounded CPU and memory consumption in an HTTP service where the baggage propagation style is enabled, which is the default for most affected tracers. This can cause denial of service. This issue is fixed in version 1.62.0.

Weakness
CWE-770
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

In the news

No ingested article mentions this CVE yet.