Arbitrary Code Injection Affecting org.apache.camel:camel-dynamic-router package, versions [4.4.0,4.18.5)[4.19.0,4.22.1)


Severity

Recommended
0.0
critical
0
10

CVSS assessment by Snyk's Security Team. Learn more

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications

Snyk Learn

Learn about Arbitrary Code Injection vulnerabilities in an interactive lesson.

Start learning
  • Snyk IDSNYK-JAVA-ORGAPACHECAMEL-21248527
  • published19 Oct 2026
  • disclosed19 Oct 2026
  • creditLeon Zlobecki

Introduced: 19 Oct 2026

NewCVE-2026-83531  (opens in a new tab)
CWE-94  (opens in a new tab)

How to fix?

Upgrade org.apache.camel:camel-dynamic-router to version 4.18.5, 4.22.1 or higher.

Overview

Affected versions of this package are vulnerable to Arbitrary Code Injection via DynamicRouterControlProducer in the dynamic-router-control component. An attacker can execute a supplied expression with the Camel process’s privileges by sending a subscribe or update control message containing a predicate and expression-language name to a transport routed to a dynamic-router-control endpoint; the compiled predicate is evaluated against exchanges routed through that channel, potentially enabling arbitrary code execution and compromising the application.

Notes

  • Reaching the control endpoint requires the attacker to be able to send on a transport whose route forwards messages to it; the endpoint adds no separate authentication or user-interaction requirement.

Workarounds

  • Do not forward messages from untrusted or shared transports to a dynamic-router-control endpoint; this prevents untrusted senders from supplying subscription expressions for evaluation.
  • If control messages must cross such a transport, authenticate senders and remove the CamelDynamicRouterPredicate and CamelDynamicRouterExpressionLanguage headers, and clear the predicate and expressionLanguage fields from any DynamicRouterControlMessage before it reaches the endpoint. This keeps those expression inputs from being supplied by the message.
  • Restrict who can send to transports that feed a dynamic-router-control endpoint; this limits who can reach the vulnerable control path.

CVSS Base Scores

version 4.0
version 3.1