REDHAT-BUG-2463172: High severity Apache Apache Camel vulnerability
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.
Affected Software
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-2463172?
The severity of REDHAT-BUG-2463172 is classified as high with a score of 7.
What is the risk associated with REDHAT-BUG-2463172?
The risk associated with REDHAT-BUG-2463172 is rated at 33, indicating a significant vulnerability.
How can I fix REDHAT-BUG-2463172?
To fix REDHAT-BUG-2463172, ensure that ObjectInputFilter is applied to prevent insecure deserialization of ObjectMessage payloads.
What software is affected by REDHAT-BUG-2463172?
REDHAT-BUG-2463172 affects Apache Camel, specifically the camel-jms and camel-sjms components.
Why is REDHAT-BUG-2463172 a concern for security?
REDHAT-BUG-2463172 is a concern because it allows for potential deserialization attacks due to lack of input filtering in JMS ObjectMessage handling.