CVE-2026-59323: Micrometer Tracing Brave Bridge W3C Baggage propagation DoS vulnerability
An application using Micrometer Tracing with W3C baggage propagation in the Brave bridge is vulnerable to denial of service (DoS) due to unbounded object allocation when extracting incoming baggage headers.
Specifically, an application is vulnerable when all the following are true:
The application uses a vulnerable version of io.micrometer:micrometer-tracing-bridge-brave. W3C propagation is active (either configured manually or active by default, such as in Spring Boot 3.x+). Baggage propagation is enabled (which is the default in Spring Boot 3.x+) and a baggage manager (such as BraveBaggageManager) is configured to handle baggage fields. The application processes requests or messages from untrusted sources with baggage headers which it normally should not, see: https://www.w3.org/TR/trace-context/#security-considerations . Network components including the (HTTP) server that receives the request do not limit the header size or the limit is high enough to cause issues.
The last two points are very important: normally this should not affect applications because they should not receive untrusted and unlimited input for baggage.
The application processes requests or messages from untrusted sources with baggage headers.
When extracting baggage from the W3C baggage header, incoming entries are parsed without enforcing limits on the number of entries or header size as mandated by the W3C Baggage specification. An attacker can send requests or messages with artificially inflated baggage headers containing many key-value pairs, causing unconditional BaggageField allocations per entry. This leads to garbage collection pressure, high CPU usage, and potential application crash via OutOfMemoryError.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Disable W3C baggage propagation in Micrometer Tracing/Brave bridge if it is active (manually configured or active by default, e.g., in Spring Boot 3.x+), so the application does not extract untrusted incoming baggage headers.
Micrometer Tracing Brave bridge (io.micrometer:micrometer-tracing-bridge-brave) W3C baggage propagation = disabled (propagation off) - Configuration
Do not process baggage headers from untrusted sources; ensure only trusted request/message sources can provide baggage so the app does not allocate per incoming baggage entry.
Application baggage handling processing of incoming baggage headers from untrusted sources = block/reject - Compensating control
Ensure the (HTTP) server and any upstream network components receiving requests enforce a low limit on header size (baggage headers included) so they cannot contain artificially inflated W3C baggage with many key-value pairs.
Event History
Frequently Asked Questions
Are Spring Boot applications affected by default?
Spring Boot 3.x+ can meet key affected conditions by default: W3C propagation and baggage propagation are active by default. Exposure also requires a vulnerable Brave bridge version, a configured baggage manager, and acceptance of baggage headers from untrusted sources.
What does an attacker need to exploit this issue?
An attacker needs to send requests or messages with baggage headers to an affected application from an untrusted source. The receiving network path, including the HTTP server, must allow headers large enough to trigger problematic unbounded allocation.
Which deployments are most realistically exposed?
Deployments that process untrusted, effectively unlimited baggage-header input are the primary concern. The advisory notes that applications normally should not receive untrusted and unlimited baggage input, so environments with enforced header-size limits are less likely to be affected.
What can be done if the dependency cannot be changed immediately?
Limit incoming header sizes at the HTTP server and other network components, and prevent untrusted sources from supplying baggage headers where possible. These measures address the conditions that permit oversized baggage input to reach the application.