Apache Camel security advisory: CVE-2026-43865

Severity

MEDIUM

Summary

Camel-Hazelcast: Unsafe Java deserialization in default-configured managed Hazelcast instances enables remote code execution

Versions affected

From 4.0.0 before 4.14.8, from 4.15.0 before 4.18.3, from 4.19.0 before 4.21.0.

Versions fixed

4.14.8, 4.18.3 and 4.21.0

Description

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.

Notes

The JIRA ticket: https://issues.apache.org/jira/browse/CAMEL-23414 refers to the various commits that resolved the issue, and have more details. The fix was merged on main in https://github.com/apache/camel/pull/22943 (commit 7a309042f22493082647a410d9d8cafd672b1c74) and backported to camel-4.18.x (commit 5caf4368551f6d3b61690d5db03869491390d446) and camel-4.14.x (commit 974a11b5ed5e2d50722f33aa48f61898395ea45b). This issue is distinct from the Hazelcast library deserialization advisories CVE-2016-10750 and CVE-2022-36418, which concern Hazelcast’s own code; this advisory concerns Apache Camel not applying the deserialization protections that Hazelcast and other Camel components already provide. It belongs to the same Camel deserialization-hardening family as CVE-2026-25747. The issue is classified as CWE-502 (Deserialization of Untrusted Data).

Mitigation

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

This issue was discovered by gaorenyusi

References

PGP signed advisory data: CVE-2026-43865.txt.asc
Mitre CVE Entry: https://www.cve.org/CVERecord?id=CVE-2026-43865