Executive brief
Apache Camel's JMS components contain a vulnerability that allows attackers to bypass security filters protecting against malicious serialized objects. An attacker who can send messages to a JMS queue or topic consumed by a vulnerable Camel application can inject malicious Exchange state to manipulate message routing, modify headers, or trigger error handlers—potentially leading to unauthorized actions, data modification, or service disruption. This is a bypass of a previous security patch and affects multiple Camel integration components.
Technical details
This is a deserialization bypass vulnerability in JmsBinding.extractBodyFromJms() and equivalent code in camel-sjms. When mapJmsMessage is enabled (the default), incoming JMS ObjectMessages are deserialized. A prior CVE-2026-40860 hardening added a class allow-list (java.**, javax.**, org.apache.camel.**), but the vulnerable code itself—DefaultExchangeHolder—lives in the allow-listed org.apache.camel.** namespace. An attacker can craft an ObjectMessage containing a DefaultExchangeHolder that passes the security check; upon deserialization, the receiving side calls DefaultExchangeHolder.unmarshal() without requiring the transferExchange option, creating an asymmetric trust boundary. This allows injection of arbitrary Exchange state (message body, headers, properties, variables, exchange ID, exception) using only universally-trusted java.lang and java.util types, with no gadget chain required. The vulnerability affects camel-jms, camel-sjms, camel-sjms2, camel-amqp, camel-activemq, and camel-activemq6. Patches are available: version 4.21.0, 4.18.3, or 4.14.8 depending on the release stream; after patching, ObjectMessage handling is disabled by default (objectMessageEnabled=false).
Affected products
- Apache Camel JMS >=3.0.0,<4.14.8; >=4.15.0,<4.18.3; >=4.19.0,<4.21.0
- Apache Camel SJMS >=3.0.0,<4.14.8; >=4.15.0,<4.18.3; >=4.19.0,<4.21.0
- Apache Camel SJMS2 >=3.0.0,<4.14.8; >=4.15.0,<4.18.3; >=4.19.0,<4.21.0
- Apache Camel AMQP >=3.0.0,<4.14.8; >=4.15.0,<4.18.3; >=4.19.0,<4.21.0
- Apache Camel ActiveMQ >=3.0.0,<4.14.8; >=4.15.0,<4.18.3; >=4.19.0,<4.21.0
- Apache Camel ActiveMQ6 >=3.0.0,<4.14.8; >=4.15.0,<4.18.3; >=4.19.0,<4.21.0
Timeline
- 2026-07-06: disclosed: Published to GitHub Advisory Database
- 2026-07-06: patched: Patches released: camel-4.14.8, camel-4.18.3, camel-4.21.0