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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-85245 — 可运行的 Spring Boot 概念验证,复现 CVE-2026-85245——一个 camel-thrift 跨交换数据泄露漏洞,包含受影响版本与修复版本的对比以及缓解措施说明。 | Kitploit
工具/GitHubGitHub/oscerd/cve-2026-85245
防御工具漏洞分析漏洞利用Web应用程序漏洞利用学习与教育
GitHuboscerd/cve-2026-85245

CVE-2026-85245

可运行的 Spring Boot 概念验证,复现 CVE-2026-85245——一个 camel-thrift 跨交换数据泄露漏洞,包含受影响版本与修复版本的对比以及缓解措施说明。

查看仓库
18小时50分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-85245 — camel-thrift:跨交换数据泄露(共享 defaultInstance)

针对 Apache Camel 漏洞的可运行概念验证复现程序。该漏洞中,Thrift 数据格式被反序列化到目标类型的共享 defaultInstance,而不是反序列化到一份全新的副本,并将该共享对象作为交换体返回。由于该实例在整个进程范围内共享,反序列化一条消息时写入的状态会保留在对象上,并对之后使用同一类型的每条消息可见。后续载荷中缺失的字段会保留上一条消息的值,因此在处理另一个发送者的消息时可能读取到属于某个发送者的内容,并且并发交换可能观察到彼此部分写入的状态。在通过同一路由为多个租户或用户提供服务的部署中,这会将一方的数据泄露给另一方。

仅限 Spring Boot。 不存在 camel-quarkus-thrift 扩展,因此本复现程序只提供一个 Camel Spring Boot 模块。(该缺陷位于组件的 ThriftDataFormat 中,与运行时无关。)

运行时目录技术栈
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-thrift 4.22.0(受影响;修复版本 4.22.1)

演示内容

一条路由定义了一个 ThriftDataFormat(由生成的 Thrift 类型 Work 支持),并像路由通常那样对每条消息复用它。两个租户通过它发送消息:

  • 租户 A:Work{num1=1, op=ADD, comment="TENANT-A-SECRET-…"} —— 可选的 comment 字段携带敏感数据;
  • 租户 B:Work{num1=3, op=SUBTRACT} —— 没有 comment 字段。

该路由先反序列化租户 A 的消息,然后反序列化租户 B 的消息。

  • 受影响:租户 B 反序列化后的对象返回时携带了租户 A 的 comment —— Thrift 只赋值传入字节中存在的字段,而两条消息都被反序列化到(并作为)同一个共享实例返回,因此 B 缺失的字段保留了 A 的值。两个交换体实际上是同一个对象。
  • 已修复:租户 B 的 comment 为 null —— 每个交换都获得自己的一份已清空副本。
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: B sees A's secret; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-85245-thrift-cross-exchange-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: B's comment is null; >>> Not exploited

漏洞摘要

属性值
组件camel-thrift(ThriftDataFormat.unmarshal)
CWECWE-488(数据元素暴露给错误的会话)
严重性中
攻击向量同一 Thrift 类型的两个消息通过同一条路由;后一条消息省略某个字段时会继承前一条消息的值
影响跨交换/跨租户数据泄露;并发交换可能观察到彼此部分写入的状态
受影响版本从 4.0.0 起至 4.18.5 之前,从 4.19.0 起至 4.22.1 之前
修复版本4.18.5、4.22.1、4.23.0
JIRACAMEL-24442
致谢Claude Security Scan Tool

公告:https://camel.apache.org/security/CVE-2026-85245.html

生成的 Thrift 类型(Work、Operation)是 Apache Camel 自身 camel-thrift 测试中的公开测试夹具。

修复方案

ThriftDataFormat.unmarshal 现在反序列化到每个交换的副本中: TBase instance = defaultInstance.deepCopy(); instance.clear(); —— 然后将字节反序列化到 instance 中并 返回它。每个交换都获得自己已清空的对象,因此字段不会在消息之间传递,也没有两个交换共享同一个主体。

无法升级时的缓解措施

在数据格式运行后立即将反序列化后的主体复制到新实例中,并且不要保留对返回对象的引用。

免责声明

本仓库出于教育和防御目的发布:帮助 Apache Camel 用户理解该漏洞、验证自己是否受影响,并确认升级可以解决该问题。“secret”是一个无实际作用的虚构标记字符串。请勿将本材料用于您不拥有或运营的系统。

下载工具