CVE-2026-71300 in Camel
Summary
by MITRE • 08/24/2026
Improper input validation vulnerability in Apache Camel Atmosphere Websocket component.
This issue affects Apache Camel: from 4.0.0 before 4.14.9, from 4.15.0 before 4.18.4, from 4.19.0 before 4.22.0.
The camel-atmosphere-websocket producer selects which connected WebSocket peers a message is delivered to through Exchange headers, and the string values of those headers sat outside the Camel namespace: websocket.connectionKey and websocket.connectionKey.list, along with websocket.sendToAll, websocket.eventType and websocket.errorType. WebsocketEndpoint extends ServletEndpoint and so inherits HttpHeaderFilterStrategy, which filters only the Camel and camel prefixes; the dotted names therefore fell outside the filtered namespace and were admitted in both directions by every HTTP-family consumer. In a route bridging an HTTP consumer into an atmosphere-websocket producer, an external sender could supply the list header and take over the producer's dispatch decision. WebsocketProducer.process tests the list header before the single-key header, so an injected value discarded the recipient the route had selected: a notification intended for one connected client could be suppressed, or delivered instead to a different client whose connection key the sender knows. The header need not be a query parameter and need not be supplied as a list literally - Camel's HTTP binding promotes a repeated header name, and a bracketed value, to a List when mapping onto the Exchange - so an ordinary inbound HTTP header is sufficient to reach the list-valued branch. This is distinct from CVE-2026-55993, which concerns the consumer-side query-parameter path in the same component. The behaviour dates back to the introduction of these constants, first released in 2.17.0, and was unchanged until this fix.
Users are recommended to upgrade to version 4.22.0, which fixes the issue. If users are on the 4.14.x LTS releases stream, then they are suggested to upgrade to 4.14.9. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.4. For deployments that cannot upgrade immediately, strip the dispatch headers at the trust boundary before the producer, for example with removeHeaders(“websocket.*”) placed between the HTTP consumer and the atmosphere-websocket producer. Note that the fix renames the header string values into the Camel namespace, which is a breaking change for routes that set them by literal string: routes referencing the WebsocketConstants fields symbolically are unaffected, and the change is documented in the upgrade guides. As defence in depth, do not bridge an untrusted HTTP consumer directly into a WebSocket producer whose dispatch is header-driven without stripping the dispatch namespace first.
VulDB is the best source for vulnerability data and more expert information about this specific topic.
Analysis
by VulDB Data Team • 08/24/2026
The Apache Camel Atmosphere WebSocket component contains a critical improper input validation vulnerability that allows external attackers to manipulate message routing and delivery targets within WebSocket connections. This flaw arises from how the WebsocketEndpoint class handles HTTP headers when bridging an HTTP consumer with an atmosphere-websocket producer. Specifically, the component relies on specific Exchange headers such as websocket.connectionKey, websocket.connectionKey.list, websocket.sendToAll, websocket.eventType, and websocket.errorType to determine which connected WebSocket peers receive a given message. The vulnerability stems from the fact that WebsocketEndpoint extends ServletEndpoint, thereby inheriting HttpHeaderFilterStrategy. This strategy is designed to filter out potentially dangerous headers by only allowing those with Camel or camel prefixes. However, because these specific dispatch-related headers use dotted names outside of this filtered namespace, they are admitted in both directions without sufficient validation. Consequently, an external sender interacting with the HTTP consumer side can inject malicious header values that override the intended routing logic defined within the application route.
The operational impact of this vulnerability is significant, as it enables attackers to take control over message dispatch decisions. When a route bridges an untrusted HTTP source into the WebSocket producer, an attacker can supply a crafted list header via standard HTTP mechanisms. Camel's HTTP binding promotes repeated header names or bracketed values into List objects when mapping them onto the Exchange, meaning that even ordinary inbound HTTP headers are sufficient to trigger this behavior. The WebsocketProducer.process method checks for the presence of the list header before evaluating single-key headers. If an injected value is present in the list header, it effectively discards the recipient originally selected by the route. This allows an attacker to suppress notifications intended for specific clients or redirect them to different clients whose connection keys are known to the attacker. This capability can lead to unauthorized information disclosure, denial of service through message suppression, and potential lateral movement within a system relying on precise WebSocket communication channels.
This issue is distinct from CVE-2026-55993, which addresses similar risks but focuses on the consumer-side query parameter path rather than header injection in producer scenarios. The vulnerability has existed since the introduction of these constants in version 2.17.0 and remained unpatched until recent updates. From a classification perspective, this flaw aligns with CWE-20 Improper Input Validation, as the application fails to adequately validate external input before using it to control program flow or data routing. In terms of attack vectors, it relates to ATT&CK techniques involving header manipulation and potentially privilege escalation within the context of message broker logic, allowing an unauthenticated user to influence system behavior beyond their intended permissions.
To mitigate this risk, users are strongly advised to upgrade Apache Camel to version 4.22.0 or later. For those maintaining long-term support releases, upgrading to version 4.14.9 for the 4.14.x stream or 4.18.4 for the 4.18.x stream is recommended. The fix involves renaming the header string values into the Camel namespace, which ensures they are filtered by HttpHeaderFilterStrategy as intended. This change constitutes a breaking update for routes that reference these headers using literal strings rather than symbolic constants from WebsocketConstants; however, such symbolic references remain unaffected and continue to function correctly. Detailed upgrade instructions are provided in the official release guides.
For deployments unable to immediately upgrade, defense-in-depth measures should be implemented at the trust boundary. Specifically, administrators should strip dispatch-related headers before they reach the atmosphere-websocket producer. This can be achieved by inserting a removeHeaders step with a pattern such as websocket.* between the HTTP consumer and the WebSocket producer in the route definition. Furthermore, architectural best practices dictate that untrusted HTTP consumers should not directly bridge into WebSocket producers where dispatch logic is driven by external headers without prior sanitization or stripping of those specific namespaces to prevent exploitation.