REDHAT-BUG-2497295: Input Validation
Improper Input Validation, Unintended Proxy or Intermediary ('Confused Deputy') vulnerability in Apache Camel CXF SOAP component.
The camel-cxf producer selects which SOAP operation to invoke on the backend service from the operationName (and operationNamespace) Exchange header, whose constant values (CxfConstants.OPERATIONNAME / OPERATIONNAMESPACE) were the plain strings operationName / operationNamespace. Because these names do not start with the Camel / camel prefix, HttpHeaderFilterStrategy - which blocks only the Camel header namespace on the HTTP boundary - let them pass from an inbound HTTP request straight into the Exchange. In a route that bridges an HTTP consumer (for example platform-http) into a cxf: producer, any HTTP client could therefore set the operationName header and have CxfProducer resolve and invoke a different WSDL operation than the route intended - for example replacing a read operation with a destructive one - against the backend SOAP service (a confused-deputy redirection). The constant is defined in the shared camel-cxf-common module, so the same non-prefixed names also applied to camel-cxfrs. No credentials are required when the bridging consumer is unauthenticated. 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. After upgrading, the operation-selection headers are named CamelCxfOperationName / CamelCxfOperationNamespace and are filtered at transport boundaries; see the 4.21 upgrade guide for the cross-transport carrier-header pattern. For deployments that cannot upgrade immediately, do not select the CXF operation from untrusted input: strip the operationName and operationNamespace headers from any untrusted ingress before the cxf: producer and set the operation from a trusted source in the route.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Apache Camel CXF SOAP component (camel-cxf)to a version that resolves this vulnerability.Fixed in 4.21.0 - Upgrade
Upgrade
Apache Camel (4.14.x LTS releases stream)to a version that resolves this vulnerability.Fixed in 4.14.8 - Upgrade
Upgrade
Apache Camel (4.18.x releases stream)to a version that resolves this vulnerability.Fixed in 4.18.3 - Configuration
For deployments that cannot upgrade immediately, strip the operationName and operationNamespace (or the CXF equivalents) headers from any untrusted ingress before the cxf: producer; then set the operation from a trusted source in the route.
HttpHeaderFilterStrategy operationName/operationNamespace header filtering at HTTP boundary (Camel namespace only) = Ensure CXF operation-selection headers are blocked at the HTTP transport boundary (CamelCxfOperationName / CamelCxfOperationNamespace or operationName/operationNamespace per version) so untrusted ingress cannot set them
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-2497295?
The severity of REDHAT-BUG-2497295 is high with a score of 7.
What type of vulnerability is REDHAT-BUG-2497295?
REDHAT-BUG-2497295 is categorized as an Improper Input Validation vulnerability.
How does REDHAT-BUG-2497295 affect Apache Camel CXF SOAP component?
REDHAT-BUG-2497295 allows for unintended proxy or intermediary actions via the camel-cxf producer selecting improper SOAP operations.
What are the potential consequences of exploiting REDHAT-BUG-2497295?
Exploiting REDHAT-BUG-2497295 could lead to unauthorized access to backend services by manipulating the operationName and operationNamespace headers.
How do I fix REDHAT-BUG-2497295?
To fix REDHAT-BUG-2497295, ensure proper validation of input parameters for the camel-cxf producer to prevent misuse.