Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Network-delivered, no auth required, no user interaction; availability impact is Low because Node.js HTTP defaults naturally bound most deployments.
Primary rating from Vendor (https://github.com/open-telemetry/opentelemetry-js).
CVSS VectorVendor: https://github.com/open-telemetry/opentelemetry-js
Lifecycle Timeline
2Blast Radius
ecosystem impact- 1,228 npm packages depend on @opentelemetry/core (497 direct, 733 indirect)
Ecosystem-wide dependent count for version 2.8.0.
DescriptionCVE.org
Overview
W3CBaggagePropagator.extract() in @opentelemetry/core does not enforce size limits when parsing inbound baggage HTTP headers. The W3C Baggage specification recommends a maximum of 8,192 bytes and 180 entries; these limits were only enforced on the outbound (inject()) path, not on the inbound (extract()) path. Parsing oversized baggage causes memory allocation proportional to the header size without any cap.
Impact
The practical availability impact for most Node.js deployments is limited. Node.js enforces a default --max-http-header-size of 16,384 bytes on the total combined size of all HTTP headers, constraining what an external attacker can deliver before the propagator is reached. Additionally, the header is already in memory (parsed by the HTTP layer) by the time it reaches the propagator - the additional allocation is the overhead of splitting into entry objects, not an unbounded read.
The risk is higher when transport-layer limits are absent - e.g., non-HTTP transports (messaging systems, custom TextMapGetter implementations) or deployments that have raised --max-http-header-size.
Remediation
Update @opentelemetry/core to version 2.8.0 or later. The fix enforces limits consistent with the W3C Baggage specification at the propagator level:
- Maximum total baggage size: 8,192 bytes
- Maximum number of entries: 180
- Maximum per-entry size: 4,096 bytes
Headers that exceed these limits are truncated at the point the limit is reached.
Workarounds
Ensure header size limits are configured at the server or gateway level. The default Node.js HTTP header limit (16 KB) mitigates external attack vectors independently of this fix. For non-HTTP transports receiving baggage from untrusted sources, validate input size before passing it to the propagator.
References
- W3C Baggage Specification - Limits
- opentelemetry-java: GHSA-rcgg-9c38-7xpx
- opentelemetry-go: GHSA-mh2q-q3fh-2475
Credit
Reported by tonghuaroot.
AnalysisAI
Unbounded memory allocation in @opentelemetry/core affects the W3CBaggagePropagator.extract() method, which fails to enforce W3C Baggage specification size limits (8,192 bytes, 180 entries) on the inbound parsing path - only the outbound inject() path was protected. Unauthenticated remote attackers can exploit this to cause partial availability degradation by sending oversized baggage headers, with elevated risk in non-HTTP transport contexts (messaging systems, custom TextMapGetter implementations) where Node.js's native 16 KB header cap does not apply. No public exploit code or CISA KEV listing exists; the CVSS 5.3 Medium score reflects the real-world constraint imposed by Node.js defaults on the dominant HTTP deployment pattern.
Technical ContextAI
The W3C Baggage specification (https://www.w3.org/TR/baggage/#limits) defines recommended caps - 8,192 bytes total, 180 entries, 4,096 bytes per entry - to prevent resource exhaustion during context propagation. The @opentelemetry/core npm package implements the W3CBaggagePropagator interface for distributed tracing context propagation. Prior to version 2.8.0, the extract() method parsed inbound baggage headers into entry objects without enforcing these caps, causing memory allocation that scales linearly with header size. CWE-770 (Allocation of Resources Without Limits or Throttling) precisely characterizes the root cause: the parser consumed attacker-controlled input without bounding object creation. The affected CPE is pkg:npm/@opentelemetry/core versions before 2.8.0. Parallel advisories exist for opentelemetry-java (GHSA-rcgg-9c38-7xpx) and opentelemetry-go (GHSA-mh2q-q3fh-2475), indicating this is a cross-ecosystem design gap in the OpenTelemetry propagation layer.
RemediationAI
Upgrade @opentelemetry/core to version 2.8.0 or later, which enforces W3C Baggage specification limits at the propagator level: maximum total baggage size of 8,192 bytes, maximum 180 entries, and maximum 4,096 bytes per entry, with truncation applied at the point a limit is reached. The advisory is at https://github.com/open-telemetry/opentelemetry-js/security/advisories/GHSA-8988-4f7v-96qf. For teams unable to patch immediately, ensure the Node.js HTTP server is running with the default --max-http-header-size of 16,384 bytes (do not raise this value); this limits external HTTP attack surface but does not protect non-HTTP transports. For services consuming baggage over non-HTTP transports (messaging queues, gRPC, custom TextMapGetter implementations), validate and cap the raw baggage string length before passing it to extract() as a compensating control - note this requires application-level changes and adds latency to the propagation path.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same technique Denial Of Service
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-38321
GHSA-8988-4f7v-96qf