CVE-2026-55993 Overview
CVE-2026-55993 is a Server-Side Request Forgery (SSRF) and information disclosure vulnerability in the Apache Camel camel-atmosphere-websocket component. The consumer maps inbound WebSocket query parameters directly into the Camel Exchange header map without applying any HeaderFilterStrategy. An unauthenticated remote attacker can inject Camel-internal control headers, including CamelHttpUri, by supplying them as query parameters. When the WebSocket consumer feeds a downstream HTTP producer, the attacker can redirect server-side HTTP requests to arbitrary destinations and coerce the producer into resolving Camel property placeholders, disclosing environment variables, application properties, and vault secrets.
Critical Impact
An unauthenticated attacker can redirect internal HTTP requests to cloud metadata endpoints and exfiltrate resolved vault secrets, environment variables, and application properties.
Affected Products
- Apache Camel 4.0.0 through 4.14.7
- Apache Camel 4.15.0 through 4.18.2
- Apache Camel 4.19.0 through 4.20.x
Discovery Timeline
- 2026-07-06 - CVE-2026-55993 published to NVD
- 2026-07-09 - Last updated in NVD database
Technical Details for CVE-2026-55993
Vulnerability Analysis
The vulnerability resides in the camel-atmosphere-websocket consumer component. The method WebsocketConsumer.service() collects the WebSocket query-string parameters into a map. WebsocketConsumer.sendEventNotification() then iterates that map and copies each entry directly into the Camel Exchange headers. No HeaderFilterStrategy is applied during this mapping, so the Camel header namespace is not protected from external input.
Because Camel routes use headers to control producer behavior, an attacker can override reserved control headers by supplying them as WebSocket query parameters. The header CamelHttpUri (constant Exchange.HTTP_URI) is particularly impactful. When the route bridges the WebSocket consumer to an HTTP producer, the producer honors this header as its target URI, allowing an attacker to redirect the outbound request to any destination reachable from the server.
The HTTP producer additionally resolves Camel property placeholders on the resulting URI. Placeholders embedded in the attacker-supplied value, such as environment-variable references, application properties, or vault references, are resolved to their real values and sent in the outbound request to the attacker-controlled destination. This turns a classic SSRF into a full secret-exfiltration primitive [CWE-20].
Root Cause
The consumer fails to apply the HeaderFilterStrategy it inherits from the HTTP/servlet stack. Inbound mapping does not filter the Camel* / camel* header namespace case-insensitively, so externally-supplied Camel control headers are copied into the Exchange as if they were trusted internal state.
Attack Vector
The attack requires network access to a WebSocket endpoint backed by camel-atmosphere-websocket. When the endpoint is exposed without authentication, an unauthenticated remote attacker can connect and supply crafted query parameters such as ?CamelHttpUri=http://169.254.169.254/latest/meta-data/. If the route pipes into an HTTP producer, the server issues the attacker-controlled request. Embedding placeholders like {{env:AWS_SECRET_ACCESS_KEY}} in the injected URI causes the producer to resolve and transmit those secrets.
No verified public exploit code is available. See the Apache Camel CVE-2026-55993 Advisory for technical details.
Detection Methods for CVE-2026-55993
Indicators of Compromise
- Outbound HTTP requests from Camel application hosts to internal-only addresses, RFC1918 ranges, or cloud metadata endpoints such as 169.254.169.254.
- WebSocket connections to camel-atmosphere-websocket endpoints containing query parameters beginning with Camel or camel (case-insensitive), especially CamelHttpUri.
- HTTP producer logs showing target URIs that do not match any configured route destination.
- Unexpected resolution of property placeholders ({{...}}) or vault references in outbound request URIs.
Detection Strategies
- Inspect WebSocket access logs for query strings matching the regex (?i)camel[A-Za-z]+= and alert on any match.
- Enable Camel exchange logging and flag exchanges where CamelHttpUri differs from the statically configured producer endpoint.
- Deploy egress network monitoring to identify HTTP requests from Camel workloads to non-approved destinations.
Monitoring Recommendations
- Correlate inbound WebSocket sessions with subsequent outbound HTTP producer requests to detect single-session SSRF chains.
- Monitor cloud instance metadata service (IMDS) access logs and require IMDSv2 to reduce metadata exposure.
- Alert on any Camel log entries indicating placeholder resolution against attacker-supplied header values.
How to Mitigate CVE-2026-55993
Immediate Actions Required
- Upgrade Apache Camel to a fixed version: 4.21.0, 4.18.3, or 4.14.8 on the LTS stream.
- Enforce authentication on all exposed camel-atmosphere-websocket endpoints.
- Audit existing routes to identify any WebSocket consumer that feeds an HTTP producer whose URI can be driven from message headers.
- Rotate any secrets, vault entries, or credentials that may have been resolved and exfiltrated through affected routes.
Patch Information
The fix makes the consumer apply the inherited HeaderFilterStrategy, filtering the Camel header namespace case-insensitively on inbound mapping. Externally-supplied Camel* / camel* headers are no longer copied into the Exchange. Users on the 4.14.x LTS stream should upgrade to 4.14.8. Users on the 4.18.x stream should upgrade to 4.18.3. All other users should upgrade to 4.21.0. Refer to the Apache Camel CVE-2026-55993 Advisory for release details.
Workarounds
- Strip Camel control headers at the start of every affected route using removeHeaders("Camel*") and removeHeaders("camel*") before any downstream producer is invoked.
- Require authentication on all WebSocket endpoints exposed by camel-atmosphere-websocket.
- Avoid bridging an untrusted consumer directly into an HTTP producer whose target URI can be influenced by message headers.
- Restrict egress network access from Camel workloads to an allow-list of approved destinations to limit SSRF impact.
# Configuration example - route-level header stripping workaround
from("atmosphere-websocket:///ws/events")
.removeHeaders("Camel*")
.removeHeaders("camel*")
.to("http://backend.internal/api/process");
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

