CVE-2026-43866
Apache Camel,Apache Camel:Camel JMS - 通过DefaultExchangeHolder绕过CVE-2026-40860修复
- 已发布
- 2026年7月6日
- 已更新
- 2026年7月6日
- 分配 CNA
- apache
- 观察到的证据
- 2026年8月6日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L低 · 未来 30 天
- 百分位
- 49.5%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
# Apache Camel 中的不可信数据反序列化漏洞 Apache Camel 及 Apache Camel JMS 组件中存在不可信数据反序列化漏洞。当 `mapJmsMessage` 选项启用(默认启用)且 Camel 作为 JMS 消费者时,camel-jms 中的 `JmsBinding.extractBodyFromJms()` —— 以及 camel-sjms 中对应的 `JmsBinding` —— 会通过 `jakarta.jms.ObjectMessage.getObject()` 对传入的 JMS ObjectMessage 负载进行反序列化。CVE-2026-40860 加固措施添加了反序列化后的类检查,用于拒绝默认允许列表 `java.**;javax.**;org.apache.camel.**;!*` 之外的类。然而,`org.apache.camel.support.DefaultExchangeHolder` 本身位于允许列表中的 `org.apache.camel.**` 命名空间内,因此顶层对象为 `DefaultExchangeHolder` 的 ObjectMessage 能够通过检查。接收方随后会在无需启用 `transferExchange` 选项的情况下对其调用 `DefaultExchangeHolder.unmarshal()` —— 这是一个不对称的信任边界,因为发送方对 ObjectMessage 和 transferExchange 的处理设置了门槛,而接收方却没有 —— 将 holder 的每个非空字段写入 Exchange:消息体、IN 和 OUT 头、exchange 属性、变量、exchange id 以及异常。能够向受影响 Camel 应用所消费的队列或主题发布 ObjectMessage 的攻击者,因此可以仅使用普遍受信任的 java.lang 和 java.util 类型注入任意 Exchange 状态,无需任何反序列化 gadget 链,即可操纵路由、头信息、exchange 属性和错误处理。相同的处理方式也适用于 camel-sjms 和 camel-sjms2,以及基于 JmsComponent 和 JmsBinding 构建的 JMS 系列组件:camel-amqp、camel-activemq 和 camel-activemq6。这是对 CVE-2026-40860 修复的绕过,而非该修复本身的缺陷。此问题影响 Apache Camel:3.0.0 至 4.14.8 之前版本、4.15.0 至 4.18.3 之前版本、4.19.0 至 4.21.0 之前版本;Apache Camel:3.0.0 至 4.14.8 之前版本、4.15.0 至 4.18.3 之前版本、4.19.0 至 4.21.0 之前版本。建议用户升级至修复该问题的 4.21.0 版本。如果用户使用 4.14.x LTS 发布流,建议升级至 4.14.8。如果用户使用 4.18.x 发布流,建议升级至 4.18.3。升级后,camel-jms、camel-sjms 及 JMS 系列组件中 JMS ObjectMessage 处理默认被禁用(新的 `objectMessageEnabled` 选项在组件和端点级别默认值为 false),因此传入的 ObjectMessage —— 包括 DefaultExchangeHolder 负载 —— 不再被反序列化,除非显式启用该选项;仅当所消费的 JMS 目标完全由受信任的生产者提供时,才设置 `objectMessageEnabled=true`。对于无法立即升级的部署,请通过 JMS 代理授权将发布到 Camel 所消费队列和主题的访问权限限制为受信任的生产者,并且不要将映射 ObjectMessage 主体的 JMS 消费者暴露给不受信任的网络;JMS 提供方的反序列化允许列表无法缓解此特定绕过,因为构造的负载仅使用普遍受信任的类。
来源
1针对 CVE-2026-43866 的复现器 — Apache Camel camel-jms 伪造 DefaultExchangeHolder 绕过 CVE-2026-40860 反序列化过滤器(Exchange 状态注入)
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。