Summary
CVE-2026-78329 is an improper input validation vulnerability (CWE-20) in the camel-undertow component of Apache Camel. The UndertowEndpoint class overwrote its Undertow-specific header filter strategy with the generic HTTP one, so undertow-specific header filtering never ran on endpoint-configured routes. This lets an attacker inject legacy websocket.* prefixed headers that are read by a downstream Undertow WebSocket producer as dispatch directives, allowing messages to be delivered to a peer other than the one the route intended, and lets header names Undertow itself rejects pass through onto the Exchange instead of being dropped.
Technical details
- Root cause:
UndertowEndpointdefaulted itsheaderFilterStrategyfield to the baseHttpHeaderFilterStrategyand pushed that instance into the lazily-createdUndertowHttpBinding, overwriting theUndertowHeaderFilterStrategythatDefaultUndertowHttpBindinginstalls by default — so the Undertow-specific strategy was constructed and immediately replaced before it could be consulted. - Trigger conditions: Occurs on endpoint-configured Undertow routes where no custom binding or explicit
headerFilterStrategyis supplied. Rest DSL consumers are not affected, sinceUndertowComponentexplicitly assignsUndertowRestHeaderFilterStrategy(which extends the Undertow strategy). - Attack vector: Network — an attacker sends an HTTP request to an Undertow HTTP consumer endpoint containing crafted
websocket.*prefixed headers; these are mapped onto the Camel Exchange unfiltered and later interpreted by an Undertow WebSocket producer as dispatch directives. - Impact: Messages can be redirected to a WebSocket peer other than the one the route selected, and header names Undertow would otherwise reject are passed through to the Exchange rather than filtered.
Affected software
- Apache Camel
camel-undertow: 4.11.0 up to (but not including) 4.14.9 - Apache Camel
camel-undertow: 4.15.0 up to (but not including) 4.18.4 - Apache Camel
camel-undertow: 4.19.0 up to (but not including) 4.22.0
Severity
CVSS v3.1 Base Score: 9.8 (Critical)
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate: Upgrade to a fixed release: 4.14.9 (4.14.x LTS stream), 4.18.4 (4.18.x stream), or 4.22.0.
- If upgrade is not immediately possible: Explicitly bind an
UndertowHeaderFilterStrategyin the registry and reference it on the endpoint (e.g.,undertow:http://0.0.0.0:8080/foo?headerFilterStrategy=#myStrategy), and additionally strip dispatch headers at the trust boundary withremoveHeaders("websocket.*"). - Note: Even after upgrading, the
websocket.*values remain part of Undertow’s externally visible API and are read directly byUndertowProducerviain.getHeader, which bypasses anyHeaderFilterStrategy. Routes that pass untrusted messages from a non-Undertow consumer into an Undertow producer must independently strip these headers, as the fix only restores filtering at the Undertow transport boundary.

