Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach internet-facing service using dd-trace-cpp
-
DeliveryCraft W3C baggage header with many pairs or huge value
-
ExploitParser allocates unbounded per-request hash map
-
ExecutionRepeat requests to exhaust CPU/memory
-
ImpactService denied to legitimate users
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target service to (1) use dd-trace-cpp prior to 2.1.0 and (2) have W3C baggage extraction enabled - which is the default unless 'baggage' has been removed from DD_TRACE_PROPAGATION_STYLE or DD_TRACE_PROPAGATION_STYLE_EXTRACT - and (3) be reachable so the attacker-controlled 'baggage' HTTP header is processed on the extraction path. No authentication, user interaction, or special platform is needed (PR:N/UI:N). The primary limiting factors are the default-on-but-disableable baggage config and the relatively niche footprint of the C++ tracer; impact is confined to availability (no data disclosure or modification). |
| Impact | Signals are consistent and point to a genuine but bounded (DoS-only) risk. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) aligns cleanly with the description: remote, unauthenticated, low-complexity, no user interaction, availability-only impact. This is not an inflated high-CVSS-but-low-real-risk case - the description, CWE-770 (uncontrolled resource consumption), and source-code diff all corroborate an unbounded allocation on the extraction path. However, no EPSS score is provided, the CVE is NOT in CISA KEV, and no public exploit code is referenced - so this is 'no public exploit identified at time of analysis' rather than active exploitation. The confidentiality/integrity impact is correctly N (pure resource-exhaustion DoS), so it is a lower priority than an RCE at the same 7.5. Real-world urgency is moderated by two factors: the C++ tracer specifically is far less deployed than Datadog's other-language tracers, and exploitation requires baggage extraction to be enabled (default-on) on an internet-facing service. Patch is confirmed available (v2.1.0, commit 422dc91). No conflicting signals were found in the input. |
| Exploit ScenarioDerived | An attacker sends a single HTTP request to an internet-facing service instrumented with dd-trace-cpp, including a W3C 'baggage' header packed with thousands of comma-separated key-value pairs (or one enormous value). The tracer's extraction path parses the header into a per-request hash map without enforcing DD_TRACE_BAGGAGE_MAX_ITEMS/DD_TRACE_BAGGAGE_MAX_BYTES, spiking CPU and memory; repeating this across many requests exhausts resources and denies service. No public exploit code is identified, but the attack is trivial to reproduce from the description and patch diff. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 17, 2026
Denial of service in Datadog's dd-trace-cpp distributed tracing library prior to 2.1.0: the W3C baggage extraction path parses the attacker-controlled 'baggage' HTTP header without applying the DD_TRACE_BAGGAGE_MAX_ITEMS or DD_TRACE_BAGGAGE_MAX_BYTES limits that are already enforced on the injection path. A remote, unauthenticated attacker can send a header containing a very large number of comma-separated key-value pairs, or a single oversized value, to force unbounded hash-map allocation and CPU/memory consumption per request on internet-facing services that use the C++ tracer with baggage extraction enabled (the default unless baggage is removed from DD_TRACE_PROPAGATION_STYLE or DD_TRACE_PROPAGATION_STYLE_EXTRACT). No public exploit identified at time of analysis; impact is availability-only (CVSS 7.5, AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H).
RemediationAI
Vendor-released patch: upgrade dd-trace-cpp to version 2.1.0 or later (https://github.com/DataDog/dd-trace-cpp/releases/tag/v2.1.0), which corresponds to upstream commit 422dc91bb93e358e3977381275d311f3f926d666 in PR https://github.com/DataDog/dd-trace-cpp/pull/313 and is documented in advisory GHSA-ch7h-phmx-rqwq. The fix enforces DD_TRACE_BAGGAGE_MAX_ITEMS and DD_TRACE_BAGGAGE_MAX_BYTES on the extraction path, so operators who cannot patch immediately can apply the primary workaround of removing 'baggage' from DD_TRACE_PROPAGATION_STYLE and DD_TRACE_PROPAGATION_STYLE_EXTRACT (or otherwise narrowing propagation styles to tracecontext/datadog only) so the vulnerable parser is never invoked; the trade-off is that inbound baggage key-value context stops being propagated, which can degrade feature-flag targeting, session correlation, or other business context that depends on baggage. As a secondary compensating control, cap accepted HTTP header size at the edge or reverse proxy (e.g., a strict maximum header/field size in nginx, Envoy, or an ingress) to bound the payload an attacker can deliver; the trade-off is that legitimate clients sending unusually large tracing headers may be rejected, and this only limits the per-request cost rather than eliminating the unbounded map growth for headers beneath the cap. Note that no public exploit code was identified at the time of analysis; the referenced PR/commit are the vendor fix, and the CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) reflects remote unauthenticated denial of service with no confidentiality or integrity impact.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is a CWE-770 (Allocation of Resources Without Limits or Throttling) issue in dd-trace-cpp, Datadog's C++ distributed tracing library, which implements W3C Trace Context and W3C Baggage propagation. When a request arrives, the tracer's extraction pipeline (Tracer::extract_baggage -> Baggage::extract -> parse_baggage, reached via w3c_propagation.cpp) reads the 'baggage' header through a DictReader and splits it into key-value pairs stored in an unordered_map. Before the fix, parse_baggage accepted the caller's Options on the injection side but used no limits during extraction, so neither max_items nor max_bytes constrained the resulting container; each request could therefore allocate an arbitrarily large map and burn CPU on tokenizing a very long header. CPE cpe:2.3:a:datadog:dd-trace-cpp:*:*:*:*:*:*:*:* with the affected range confirmed by EUVD as dd-trace-cpp < 2.1.0. The upstream fix (PR #313, commit 422dc91bb93e358e3977381275d311f3f926d666) threads Options into Baggage::extract and parse_baggage, rejects the whole header when input.size() > opts.max_bytes, and returns MAXIMUM_CAPACITY_REACHED once the parsed map reaches opts.max_items - the same change also hard-caps the x-datadog-tags header and the 'dd' tracestate entry at 512 bytes as defense in depth for related extraction paths.
Know when Datadog gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote unauthenticated attacker sends a crafted header to a default-on extraction path (AV:N/AC:L/PR:N/UI:N); impact is pure resource-exhaustion DoS, so C:N/I:N/A:H, scope unchanged.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
dd-trace-cpp is the Datadog distributed tracing library for C++. Prior to 2.1.0, dd-trace-cpp parses incoming W3C baggage headers without enforcing DD_TRACE_BAGGAGE_MAX_ITEMS or DD_TRACE_BAGGAGE_MAX_BYTES on the extraction path, even though those limits are enforced during injection. A remote unauthenticated attacker can send a header containing many comma-separated key-value pairs or one very large value, causing per-request hash-map allocation and unbounded CPU and memory consumption. Baggage extraction is enabled by default in most affected tracers unless baggage is removed from DD_TRACE_PROPAGATION_STYLE or DD_TRACE_PROPAGATION_STYLE_EXTRACT, so affected internet-facing services can be denied service. This issue is fixed in version 2.1.0.
Technical POC Analysis
Bug class: CWE-770 (Allocation of Resources Without Limits or Throttling) - per the CVE metadata supplied.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Internet-facing services built on Datadog's dd-trace-cpp tracing library (versions prior to 2.1.0) are exposed to an unauthenticated remote denial-of-service condition that can exhaust CPU and memory and degrade or halt request handling. Because baggage header extraction is enabled by default, any external party who can reach the service can trigger the resource exhaustion without credentials, so the practical exposure spans every customer-facing and partner-facing endpoint running an affected tracer. Leadership should weigh this as an availability and service-reliability risk rather than a data-confidentiality risk, with remediation depending on a library upgrade across all affected services.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Metric and tag injection in the Perl DataDog::DogStatsd client (versions through 0.07) allows attackers who control even
Metric injection in the Perl DataDog::DogStatsd client (versions through 0.07) allows remote attackers to forge or manip
Unbounded CPU and memory consumption in the Datadog PHP Tracer (dd-trace-php) before 1.19.2 allows remote, unauthenticat
A missing permission check in Jenkins Datadog Plugin 5.4.1 and earlier allows attackers with Overall/Read permission to
The Datadog Plugin stores an API key to access the Datadog service in the global Jenkins configuration. Rated low severi
EUVD-2026-82423
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB