Severity: moderate 

Affected versions:

- Apache Camel (org.apache.camel:camel-hazelcast) 4.0.0 before 4.14.8
- Apache Camel (org.apache.camel:camel-hazelcast) 4.15.0 before 4.18.3
- Apache Camel (org.apache.camel:camel-hazelcast) 4.19.0 before 4.21.0

Description:

Deserialization of Untrusted Data vulnerability in Apache Camel Hazelcast 
component.

The camel-hazelcast component creates and manages Hazelcast instances using a 
default configuration that applies no Java deserialization filter. When Camel 
builds the Hazelcast Config itself - that is, when no user-supplied 
HazelcastInstance, hazelcastConfigUri, or referenced Config bean is provided - 
neither Hazelcast's JavaSerializationFilterConfig nor a Camel-side 
ObjectInputFilter is configured, so objects received over the Hazelcast cluster 
protocol are deserialized inside Hazelcast's own serialization layer 
(ObjectInputStream.readObject) before Camel ever processes them. An attacker 
who can join or otherwise reach the Hazelcast cluster can publish a crafted 
serialized Java object that is then deserialized on every Camel node, resulting 
in remote code execution. The exposure is present by default and requires no 
opt-in endpoint configuration: any route using a hazelcast consumer 
(hazelcast-topic, hazelcast-queue, hazelcast-seda, hazelcast-map, 
hazelcast-multimap, hazelcast-replicatedmap, hazelcast-list, hazelcast-set), as 
well as the HazelcastAggregationRepository and HazelcastIdempotentRepository, 
is affected whenever the managed instance is created from Camel's default 
configuration.
This issue affects Apache Camel: from 4.0.0 before 4.14.8, from 4.15.0 before 
4.18.3, from 4.19.0 before 4.21.0.

Users are recommended to upgrade to version 4.21.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.8. If users are on the 4.18.x releases stream, then they are suggested 
to upgrade to 4.18.3. The fix makes Camel apply a default Hazelcast 
JavaSerializationFilterConfig (whitelisting the java., javax. and 
org.apache.camel. class-name prefixes and blacklisting java.net.) to instances 
it creates from its own default configuration, while leaving any user-supplied 
Config or HazelcastInstance untouched. For deployments that cannot upgrade 
immediately, configure a deserialization filter on the Hazelcast instance 
(Hazelcast JavaSerializationFilterConfig, or the JVM-wide system property 
-Djdk.serialFilter=!java.net.**;java.**;javax.**;org.apache.camel.**;!*) and 
enable Hazelcast cluster authentication and TLS to restrict who can reach the 
cluster.

Credit:

gaorenyusi (finder)

References:

https://camel.apache.org/security/CVE-2026-43865.html
https://camel.apache.org/
https://www.cve.org/CVERecord?id=CVE-2026-43865

Reply via email to