CVE-2026-40453:Apache Camel 大小写绕过 Header 注入漏洞(PoC 已公开)

导语:Apache Camel 近日披露编号为 CVE-2026-40453 的安全漏洞,该漏洞为 CVE-2025-27636 的不完整修复遗留问题。攻击者可利用 Camel Exchange 头信息大小写不敏感的特性,注入大小写变形的内部控制头绕过过滤,触发远程代码执行。PoC 已公开于 GitHub,国内使用该框架进行企业集成开发的企业需高度关注。


一、漏洞概述

CVE-2026-40453 是 Apache Camel 框架中的一起大小写处理不当(Improper Handling of Case Sensitivity)漏洞,官方定级为 MEDIUM

2025 年 3 月,Apache Camel 曾修复 CVE-2025-27636——该漏洞同样源于 Camel 内部控制头注入。当时的修复在 HttpHeaderFilterStrategy 中添加了 setLowerCase(true),使其能够过滤大小写变体的头名称(如 CAmelExecCommandExecutable 与标准 CamelExecCommandExecutable)。

然而,CAMEL-23313 补丁遗漏了五个非 HTTP 的 HeaderFilterStrategy 实现,导致这些组件仍以大小写敏感的方式过滤头名称,而 Camel Exchange 本身使用大小写不敏感的 Map 存储头信息。攻击者可利用这一差异,注入大小写变体绕过过滤,最终在下游组件中触发 RCE 或任意文件写入。


二、风险速览

项目说明
CVE 编号CVE-2026-40453
漏洞类型CWE-20 Improper Input Validation — 消息头注入
危险等级🟡 中危(MEDIUM)
影响组件camel-jmscamel-sjmscamel-coapcamel-google-pubsub
影响类JmsHeaderFilterStrategyClassicJmsHeaderFilterStrategySjmsHeaderFilterStrategyCoAPHeaderFilterStrategyGooglePubsubHeaderFilterStrategy
影响版本3.0.0 ~ 4.14.5、4.15.0 ~ 4.18.1、4.19.0 ~ 4.20.0 之前所有版本
修复版本4.14.64.18.24.20.0
触发前提攻击者需持有 JMS(或等效协议)生产者权限,向由 Camel 路由消费的 Broker 发送消息
危害后果远程代码执行(RCE)/ 任意文件写入
报告者Saroj Khadka
漏洞发现本漏洞为 CVE-2025-27636 的不完整修复

三、技术根因分析

3.1 漏洞原理

Apache Camel 的各协议组件使用 HeaderFilterStrategy 来过滤掉不应该暴露给下游的 Camel 内部控制头(如 CamelExecCommandExecutableCamelExecCommandArgs 等)。

HttpHeaderFilterStrategy(已修复)过滤逻辑如下:

public HttpHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    setLowerCase(true);  // ← CVE-2025-27636 修复添加:启用后无论大小写均过滤
}

而受影响组件的 CoAPHeaderFilterStrategy(以及其他四个策略):

public CoAPHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    // ← 缺少 setLowerCase(true):过滤大小写敏感
}

这意味着:

  • CamelExecCommandExecutablestartsWith("Camel") 返回 true → 被过滤
  • CAmelExecCommandExecutablestartsWith("Camel") 返回 falseCAmCam)→ 未被过滤

然而,Camel Exchange 的头信息存储在大小写不敏感的 Map 中,因此当请求到达下游的 camel-execcamel-file 等组件时,大小写变体头会被以其规范名称解析,从而触发命令注入或文件写入。

3.2 攻击链路径

攻击者发送 CoAP/JMS 请求
    ↓
URI-Query 参数被映射为 Exchange In Headers
    ↓
CoAPHeaderFilterStrategy.applyFilterToExternalHeaders()
    ↓
"CAmelExecCommandExecutable" → startsWith("Camel") 为 false → 未被过滤
    ↓
Camel Exchange 头存储(大小写不敏感)
    ↓
camel-exec 组件以规范名 CamelExecCommandExecutable 解析该头
    ↓
RCE / 任意文件写入

四、PoC 演示

以下 PoC 以 camel-coap 组件为例(自包含,无需外部 Broker)。项目地址:

https://github.com/sarojkpr/CVE-2026-40453

4.1 受害路由

from("coap://0.0.0.0:5683/run")
    .to("exec:echo?args=hello")
    .convertBodyTo(String.class);

4.2 正常请求

curl http://localhost:8080/exploit/normal
# 返回: hello

4.3 规范头注入 — 被过滤(无 RCE)

curl http://localhost:8080/exploit/canonical
# 注入 CamelExecCommandExecutable / CamelExecCommandArgs
# 结果: /tmp/pwned-canonical created: false
# (过滤机制阻止了攻击)

4.4 大小写变体头注入 — 绕过成功(RCE)

curl http://localhost:8080/exploit/attack
# 注入 CAmelExecCommandExecutable / CAmelExecCommandArgs(大写 A)
# 结果: /tmp/pwned created: true
# (过滤器被绕过,RCE 成功)

docker exec cve-2026-40453 ls -la /tmp/pwned

4.5 复现步骤

git clone https://github.com/sarojkpr/CVE-2026-40453
cd CVE-2026-40453
mvn clean package -DskipTests
docker compose up -d --build
# 然后分别访问上述三条 curl 命令观察差异
docker compose down

五、影响范围

该漏洞同样影响国内企业广泛使用的集成框架场景。以下是典型受影响配置:

组件受影响类触发协议
camel-jmsJmsHeaderFilterStrategyClassicJmsHeaderFilterStrategyJMS
camel-sjmsSjmsHeaderFilterStrategySJMS
camel-coapCoAPHeaderFilterStrategyCoAP
camel-google-pubsubGooglePubsubHeaderFilterStrategyGoogle Cloud Pub/Sub

使用以上任意组件进行消息路由,且路由下游存在 header 驱动的 producer(如 execfiledirect 等),均存在被利用风险。


六、修复建议

6.1 升级版本(推荐)

当前版本分支建议升级至
4.14.x(LTS)4.14.6
4.15.x ~ 4.18.x4.18.2
4.19.x ~ 4.20.x4.20.0

⚠️ 补丁风险提示:主版本升级可能涉及 API 变更,建议在测试环境验证后再投入生产。

6.2 临时缓解措施

如无法立即升级,建议采取以下措施:

  1. 下游过滤 Camel 头:在所有消息处理管道中对 Camel 内部头进行大小写不敏感的清除;
  2. 收紧协议访问控制:限制 JMS/CoAP 等协议的未授权访问,禁止匿名生产者写入 Broker;
  3. 路由审查:检查所有消费外部消息的路由,移除或限制 execfile 等高危 producer 的大众访问;
  4. 网络隔离:将 Camel 路由组件部署于独立网段,阻止跨协议未授权访问。

七、漏洞时间线

时间事件
2025-03CVE-2025-27636 披露,HttpHeaderFilterStrategy 添加 setLowerCase(true)
2025-03-09CVE-2025-27636 修复公告发布
~2025Saroj Khadka 发现其他五个策略未同步修复
2026CAMEL-23313 补丁提交,完成对所有五个组件的修复
2026CVE-2026-40453 正式披露,PoC 公开

八、参考链接

  • Apache Camel 官方安全公告:https://camel.apache.org/security/CVE-2026-40453.html
  • JIRA 跟踪:https://issues.apache.org/jira/browse/CAMEL-23313
  • CVE 详情:https://www.cve.org/CVERecord?id=CVE-2026-40453
  • PoC 代码库:https://github.com/sarojkpr/CVE-2026-40453

版权声明:本文由华盟网原创发布,保留所有权利。配图由华盟网授权使用。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容