CVE-2026-78162
Apache Camel:Camel-Hazelcast 托管实例缺少 Java 反序列化过滤器(CVE-2026-43865 修复不完整)
- 已发布
- 2026年10月19日
- 已更新
- 2026年10月19日
- 分配 CNA
- apache
- 观察到的证据
- 2026年10月17日
初级CVSS
cvelist · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H总结
Apache Camel 中的不可信数据反序列化漏洞。此问题影响 Apache Camel:从 4.0.0 到 4.18.5 之前,从 4.19.0 到 4.22.1 之前。camel-hazelcast 组件会对其根据自身配置创建的实例应用默认的 Hazelcast JavaSerializationFilterConfig,这是由 CVE-2026-43865 引入的一项保护措施。该变更未能覆盖 Camel 自行构建的两条配置路径,因此这两条路径继续创建 Java 反序列化不受限制的 Hazelcast 实例。ReplicatedHazelcastAggregationRepository 继承自 HazelcastAggregationRepository,但重写了 doStart() 而未调用 super.doStart(),保留了其自身的引导代码块副本,因此从未获得该过滤器:使用它且未提供 hazelcastInstance 的路由会启动一个 Hazelcast 成员,该成员在反序列化从底层 ReplicatedMap 读取的值时没有任何类限制。HazelcastDefaultComponent#getOrCreateHzClientInstance() 在选择了 hazelcastMode=client 且既未提供引用的 ClientConfig 也未提供 hazelcastConfigUri 时会构建自己的 ClientConfig,同样未应用任何过滤器,因此对于其他方面完全相同的配置,客户端模式端点的行为与节点模式端点不同。在这两种情况下,能够向受影响实例所连接的 Hazelcast 集群发布数据的攻击者,都可以使一个自选的序列化 Java 对象在 Hazelcast 自身的序列化层内被反序列化,且发生在 Camel 处理交换之前,从而导致远程代码执行。Hazelcast 集群默认既未启用身份验证也未启用 TLS。选择客户端模式是一种拓扑选择而非安全选项,因此这两条路径都不要求部署方主动选择不安全行为。建议用户升级到 4.23.0 版本,该版本修复了此问题。如果用户处于 4.22.x 发布流,建议升级到 4.22.1。如果用户处于 4.18.x 发布流,建议升级到 4.18.5。4.14.x 发布流及更早版本在此问题解决之前已达到生命周期终止,将不会获得修复,因此这些线路上的部署必须迁移到受支持的版本。对于无法立即升级的部署,请提供携带 JavaSerializationFilterConfig 的显式 Hazelcast 配置,或注入预先构建的 HazelcastInstance,因为用户提供的配置永远不会被 Camel 覆盖。或者设置 JVM 范围的过滤器 -Djdk.serialFilter=!java.net.;java.;javax.;org.apache.camel.;!* 并启用 Hazelcast 集群身份验证和 TLS,以限制谁可以访问该集群。
来源
针对 CVE-2026-78162 的可运行概念验证复现程序,演示 Apache Camel camel-hazelcast 在 Spring Boot 和 Quarkus 环境下未经身份验证的 Java 反序列化漏洞。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。