CVE-2026-40860

CRITICAL LAB

Apache Camel: Unsafe Deserialization of JMS ObjectMessage in camel-jms, camel-sjms, camel-sjms2 and camel-amqp

Title source: cna
STIX 2.1

Exploitation Summary

EIP tracks 2 public exploits for CVE-2026-40860. PoCs published by oscerd.

AI-analyzed exploit summary This repository demonstrates CVE-2026-43866, a bypass of the CVE-2026-40860 deserialization filter in Apache Camel's JMS component. The exploit sends a forged DefaultExchangeHolder object via JMS ObjectMessage, which passes the allow-list check and injects attacker-controlled Exchange state (body, headers, properties) into the victim route without requiring transferExchange configuration.

Description

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.

Exploits (2)

github WORKING POC
by oscerd · javapoc
https://github.com/oscerd/CVE-2026-43866

This repository demonstrates CVE-2026-43866, a bypass of the CVE-2026-40860 deserialization filter in Apache Camel's JMS component. The exploit sends a forged DefaultExchangeHolder object via JMS ObjectMessage, which passes the allow-list check and injects attacker-controlled Exchange state (body, headers, properties) into the victim route without requiring transferExchange configuration.

Classification
Working Poc 99%
Attack Type
Deserialization
Complexity
Moderate
Reliability
Reliable
Target: Apache Camel camel-jms component (versions < 4.14.8, < 4.18.3, < 4.21.0)
Auth required
Prerequisites: Access to a JMS broker (e.g., ActiveMQ) · Valid JMS credentials to send messages · Target must be using vulnerable Apache Camel JMS component
mistral-large-3 · analyzed Jul 12, 2026 Full analysis →
github WORKING POC
by oscerd · javapoc
https://github.com/oscerd/CVE-2026-40860

This repository demonstrates CVE-2026-40860, a Java deserialization vulnerability in Apache Camel's camel-jms component. The exploit sends a crafted JMS ObjectMessage containing a CommonsCollections gadget to trigger remote code execution (RCE) via unsafe deserialization in JmsBinding.extractBodyFromJms().

Classification
Working Poc 99%
Attack Type
Deserialization
Complexity
Moderate
Reliability
Reliable
Target: Apache Camel camel-jms (versions < 4.14.7, < 4.18.2, < 4.20.0)
No auth needed
Prerequisites: Target must have camel-jms component with trustAllPackages=true (common in real-world deployments) · CommonsCollections 3.2.1 on the classpath · JMS broker accessible to attacker (e.g., ActiveMQ)
mistral-large-3 · analyzed Jul 10, 2026 Full analysis →

Scores

CVSS v3 9.8
EPSS 0.0124
EPSS Percentile 66.2%
Attack Vector NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

CISA SSVC

Vulnrichment
Exploitation none
Automatable yes
Technical Impact total

Lab Environment

COMMUNITY
Community Lab
docker pull eclipse-temurin:21-jre
docker pull quay.io/artemiscloud/activemq-artemis-broker:latest

Details

CWE
CWE-502
Status published
Products (5)
apache/camel 4.19.0
apache/camel 3.0.0 - 4.14.7
Apache Software Foundation/Apache Camel 3.0.0 - 4.14.7
Apache Software Foundation/Apache Camel 4.15.0 - 4.18.2
Apache Software Foundation/Apache Camel 4.19.0 - 4.20.0
Published Apr 27, 2026
Tracked Since Apr 27, 2026