CVE-2026-49098
Apache Camel:Camel-Kafka:kafka.OVERRIDE_TOPIC(及其他 kafka.*)Exchange 头常量使用了非 Camel 前缀的名称,从而绕过了上游 HTTP 头过滤器,允许 HTTP 客户端将 Kafka 消息重定向到任意主题
- 已发布
- 2026年7月6日
- 已更新
- 2026年7月7日
- 分配 CNA
- apache
- 观察到的证据
- 2026年8月7日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N低 · 未来 30 天
- 百分位
- 47.5%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
# 输入验证不当,Apache Camel Kafka 组件中存在下游组件输出中特殊元素中和不当('注入')漏洞 Apache Camel Kafka 组件的 camel-kafka 生产者可以在运行时通过 kafka.OVERRIDE_TOPIC Exchange 头覆盖其配置的目标主题:KafkaProducer.evaluateTopic() 返回头值,优先于端点上配置的主题。KafkaConstants 中的控制头常量(例如 OVERRIDE_TOPIC = kafka.OVERRIDE_TOPIC、OVERRIDE_TIMESTAMP = kafka.OVERRIDE_TIMESTAMP、PARTITION_KEY = kafka.PARTITION_KEY)使用了普通的、非 Camel 前缀的值。camel-kafka 自身的 KafkaHeaderFilterStrategy 确实会过滤 kafka.* 命名空间,但仅在 Kafka 到 Exchange 的序列化边界上生效(将 Kafka 记录头读入 Exchange,以及将 Exchange 头写入 Kafka 记录);它不适用于在多组件路由中来自上游消费者的头。上游 HTTP 消费者使用 HttpHeaderFilterStrategy,该策略仅阻止 Camel / camel 命名空间,因此 kafka.* 头会未经过滤地通过。因此,在将 HTTP 消费者(例如 platform-http)桥接到 kafka: 生产者的路由中,任何 HTTP 客户端都可以设置 kafka.OVERRIDE_TOPIC 头,导致消息被发布到任意 Kafka 主题而不是配置的主题——将其重定向到敏感的内部主题,或将攻击者精心构造的消息注入到被关键下游服务消费的主题中。相关的 kafka.OVERRIDE_TIMESTAMP 和 kafka.PARTITION_KEY 头同样可以被注入,以将消息日期回溯或定位到特定分区。当桥接消费者未经过身份验证时,无需任何凭据。此问题影响 Apache Camel:4.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。升级后,通过原始头名称设置或读取 Kafka 头的路由必须使用 CamelKafka* 名称(例如 CamelKafkaOverrideTopic 和 CamelKafkaTopic),而不是旧的 kafka.* 值。对于无法立即升级的部署,请在 kafka: 生产者之前从任何不受信任的入口剥离 kafka.* 头(例如在路由开头使用 removeHeaders('kafka.*')),并从可信来源设置目标主题。
来源
1用于 CVE-2026-49098(Apache Camel camel-kafka)的 PoC 复现工具:非 Camel 前缀的 kafka.OVERRIDE_TOPIC 头可绕过上游 HTTP 头过滤器,覆盖生产者配置的主题,将攻击者伪造的记录注入到特权 Kafka 主题(跨主题注入)。已在 4.14.8/4.18.3/4.21.0 中修复。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。