Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Network-reachable JMS with no auth to Camel (PR:N), but AC:H because exploitation depends on a classpath gadget chain and publish access to a consumed destination; successful RCE yields full C/I/A:H.
Primary rating from Vendor (apache).
CVSS VectorVendor: apache
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Lifecycle Timeline
6DescriptionCVE.org
JmsBinding.extractBodyFromJms() in camel-jms, and the equivalent JmsBinding class in camel-sjms, deserialized the payload of incoming JMS ObjectMessage values via javax.jms.ObjectMessage.getObject() without applying any ObjectInputFilter, class allowlist or class denylist. Because this code path is reached whenever the mapJmsMessage option is enabled (the default) and Camel acts as a JMS consumer, an attacker able to publish a crafted ObjectMessage to a queue or topic consumed by a Camel application could achieve remote code execution when a deserialization gadget chain was present on the classpath. The same handling was reached transitively through camel-sjms2 (whose Sjms2Endpoint extends SjmsEndpoint) and through camel-amqp (whose AMQPJmsBinding extends JmsBinding), and by other JMS-family components built on JmsComponent such as camel-activemq and camel-activemq6.
This issue affects Apache Camel: from 3.0.0 before 4.14.7, from 4.15.0 before 4.18.2, from 4.19.0 before 4.20.0.
Users are recommended to upgrade to version 4.20.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.7. If users are on the 4.18.x releases stream, then they are suggested to upgrade to 4.18.2.
AnalysisAI
Remote code execution in Apache Camel's JMS-family components (camel-jms, camel-sjms, camel-sjms2, camel-amqp, camel-activemq, camel-activemq6) allows an attacker who can publish a crafted JMS ObjectMessage to a consumed queue or topic to execute arbitrary code, because JmsBinding.extractBodyFromJms() calls ObjectMessage.getObject() with no ObjectInputFilter, allowlist, or denylist. Exploitation requires a usable deserialization gadget chain on the application classpath and is reachable in the default configuration (mapJmsMessage enabled) whenever Camel acts as a JMS consumer. There is no public exploit identified at time of analysis and the vulnerability is not on CISA KEV; EPSS is low at 0.30% (53rd percentile).
Technical ContextAI
The flaw is a classic CWE-502 unsafe deserialization of untrusted data. Java's native serialization (java.io.ObjectInputStream) reconstructs arbitrary object graphs from a byte stream; when the target application contains gadget classes (e.g., from Commons-Collections, Spring, or similar libraries on the classpath), a crafted stream can be coerced into invoking dangerous methods during deserialization, yielding RCE. In Camel, the JMS message-conversion layer (JmsBinding.extractBodyFromJms in camel-jms and the equivalent class in camel-sjms) unwraps javax.jms.ObjectMessage bodies by calling getObject(), which triggers this deserialization without any ObjectInputFilter or class filtering. Because Sjms2Endpoint extends SjmsEndpoint, AMQPJmsBinding extends JmsBinding, and camel-activemq/activemq6 are built on JmsComponent, the same vulnerable path is inherited transitively across the JMS component family. The CPE data (cpe:2.3:a:apache:camel) confirms Apache Camel itself as the affected product across the listed version ranges, including the explicitly enumerated 4.19.0.
RemediationAI
Vendor-released patch: upgrade to Apache Camel 4.20.0, which fixes the issue; users on the 4.14.x LTS stream should upgrade to 4.14.7 and users on the 4.18.x stream should upgrade to 4.18.2 (per https://camel.apache.org/security/CVE-2026-40860.html). Red Hat consumers should apply RHSA-2026:17668 or RHSA-2026:22453. Where immediate patching is not possible, disable the mapJmsMessage option on affected JMS consumer endpoints so Camel does not auto-convert ObjectMessage bodies (trade-off: routes that rely on automatic JMS body mapping will need explicit handling and may break). Additionally, prevent producers from sending serialized Java objects by avoiding or refusing ObjectMessage on consumed destinations, and configure a JVM-wide deserialization filter (jdk.serialFilter / ObjectInputFilter) to allowlist only expected classes (trade-off: over-tight filters can block legitimate payloads). Restrict who can publish to Camel-consumed queues and topics via broker authentication and ACLs, and remove known deserialization gadget libraries from the classpath where feasible to eliminate exploitable chains.
Bypass/Injection vulnerability in Apache Camel components under particular conditions.10.0 through <= 4.10.1, from 4.8.0
The XSLT component in Apache Camel before 2.11.4 and 2.12.x before 2.12.3 allows remote attackers to read arbitrary file
Apache Camel's Jackson and JacksonXML unmarshalling operation are vulnerable to Remote Code Execution attacks. Rated cri
The XSLT component in Apache Camel 2.11.x before 2.11.4, 2.12.x before 2.12.3, and possibly earlier versions allows remo
Cross-realm token acceptance bypass in Apache Camel Keycloak security policy. The KeycloakSecurityPolicy fails to proper
Deserialization of Untrusted Data vulnerability in Apache Camel LevelDB component. The Camel-LevelDB DefaultLevelDBSeria
Unsafe Java deserialization in the Apache Camel camel-mina component (versions 3.0.0 through 4.14.5, 4.15.0 through 4.18
Apache Camel's File is vulnerable to directory traversal. Rated high severity (CVSS 7.5), this vulnerability is remotely
The camel-castor component in Apache Camel 2.x before 2.19.4 and 2.20.x before 2.20.1 is vulnerable to Java object de-se
The camel-xstream component in Apache Camel before 2.15.5 and 2.16.x before 2.16.1 allow remote attackers to execute arb
The camel-hessian component in Apache Camel 2.x before 2.19.4 and 2.20.x before 2.20.1 is vulnerable to Java object de-s
Apache Camel before 2.9.7, 2.10.0 before 2.10.7, 2.11.0 before 2.11.2, and 2.12.0 allows remote attackers to execute arb
Same weakness CWE-502 – Deserialization of Untrusted Data
View allSame technique Deserialization
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-25794