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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-49097 — CVE-2026-49097(Apache Camel camel-irc)的 PoC 复现器:非 Camel 前缀的 irc.sendTo 头可绕过 HTTP 头过滤器,并覆盖生产者配置的频道,将 IRC 消息重定向到攻击者指定的目标。已在 4.14.8/4.18.3/4.21.0 中修复。 | Kitploit
工具/GitHubGitHub/oscerd/cve-2026-49097
漏洞分析代码分析漏洞利用Web应用程序漏洞利用信息收集渗透测试
GitHuboscerd/cve-2026-49097

CVE-2026-49097

CVE-2026-49097(Apache Camel camel-irc)的 PoC 复现器:非 Camel 前缀的 irc.sendTo 头可绕过 HTTP 头过滤器,并覆盖生产者配置的频道,将 IRC 消息重定向到攻击者指定的目标。已在 4.14.8/4.18.3/4.21.0 中修复。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

camel-irc irc.sendTo 头部注入复现工具 (CVE-2026-49097)

该项目演示了 Apache Camel 的 camel-irc 组件中的一个消息头注入漏洞,追踪编号为 CVE-2026-49097。IrcProducer 读取 irc.sendTo 头部以选择出站 IRC 消息的目标;当该头部存在时,会覆盖端点配置的频道列表:

root@kitploit:~
// IrcProducer.process (受影响版本 4.18.2)
final String sendTo = exchange.getIn().getHeader(IrcConstants.IRC_SEND_TO, String.class);  // "irc.sendTo"
...
} else if (sendTo != null) {
    connection.doPrivmsg(sendTo, msg);          // 攻击者指定的目标
} else {
    for (IrcChannel channel : getEndpoint().getConfiguration().getChannelList()) {
        connection.doPrivmsg(channel.getName(), msg);   // 预期的、已配置的频道
    }
}

该头部常量 IRC_SEND_TO 的值为 irc.sendTo。由于它不以 Camel / camel 前缀开头,HttpHeaderFilterStrategy(仅在 HTTP 边界阻止 Camel 头部命名空间)允许其从入站 HTTP 请求直接进入 Exchange。

在一个将 HTTP 消费者(例如 platform-http)桥接到 irc: 生产者的路由中,任何 HTTP 客户端都可以提供 irc.sendTo 并将 消息重定向到任意 IRC 频道或昵称,将原本发往内部频道的内容外泄给攻击者监控的目标,或在其他频道中冒充机器人。同一修复中还重命名了另外九个 irc.* 常量;irc.sendTo 是可直接利用的。

本 PoC 演示的影响为消息重定向 / 信息泄露 (CWE-20 → CWE-74)。

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

漏洞摘要

修复将十个 irc.* 头部常量重命名为 CamelIrc* 约定(例如 irc.sendTo → CamelIrcSendTo),使它们在 HTTP 边界被过滤,就像其他所有 Camel 控制头部一样。与 CVE-2025-27636、CVE-2026-46454 和 CVE-2026-48206 属于同一家族。注意:camel-irc 自 4.21.0 起已被弃用。

为何不需要 IRC 服务器

漏洞完全存在于 IrcProducer 的目标选择中;IRC 套接字仅是传输通道。本复现工具运行真实的 IrcProducer 和真实的 irclib IRCConnection 类,通过子类化使其 send(...)(所有 do* 命令——包括 doPrivmsg——都通过它传递)记录 PRIVMSG 目标,而非写入套接字。一个自定义小型 irc 组件会分配该记录连接。不会接触任何 IRC 网络。

受害者路由

root@kitploit:~
from("platform-http:/notify")
    .to("irc:ircnet:6667?nickname=notifierbot&channels=%23alerts&commandTimeout=100");

一个“通知”端点,将请求转发到固定的内部频道 #alerts。HTTP API 中没有目标参数——作者假设客户端无法选择频道。攻击者设置 irc.sendTo,机器人便会将消息发到攻击者选择的频道。

仓库结构

root@kitploit:~
CVE-2026-49097/
├── pom.xml                 # camel-platform-http + camel-irc 4.18.2 (irclib 1.10)
├── Dockerfile
├── docker-compose.yml      # 单个自包含服务
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── RecordingIRCConnection.java  # 真实的 IRCConnection 子类;记录 PRIVMSG 目标,无套接字
    │   ├── RecordingIrcComponent.java   # 分配记录连接
    │   ├── IrcComponentConfig.java      # 在 'irc' 方案下注册
    │   ├── IrcRecorder.java             # 捕获最后传递的目标 + 文本
    │   ├── VictimRoute.java             # platform-http:/notify -> irc:...#alerts
    │   └── ExploitController.java       # 攻击者:注入 irc.sendTo=#exfil-channel
    └── resources/
        └── application.properties

前提条件

  • Docker 和 Docker Compose
  • Java 17+ 和 Maven 3.8+

复现步骤

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

预期输出

root@kitploit:~
=== CVE-2026-49097 — camel-irc irc.sendTo 头部注入(消息重定向) ===

路由意图:POST /notify -> IRC 频道 #alerts(在端点配置中固定)

1) 合法 POST /notify(无 irc.sendTo 头部)
     IRC 消息发送至: #alerts
     文本:第三季度收入报告:$420 万(仅限内部分发)

2) 注入 POST /notify,携带头部 'irc.sendTo: #exfil-channel'
     IRC 消息发送至: #exfil-channel
     文本:第三季度收入报告:$420 万(仅限内部分发)

>>> 已证明:入站 HTTP 头部 (irc.sendTo) 通过了 Camel HTTP 头部过滤器,并
>>> 覆盖了生产者配置的频道,将内部通知发送到了攻击者选择的 IRC 目标(外泄 / 机器人冒充):true

建议修复

升级到 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23629)。升级后,通过头部设置 IRC 目标的路由必须使用 CamelIrcSendTo 名称。注意 camel-irc 自 4.21.0 起已被弃用。

缓解措施

在升级之前,从任何不可信的入口(例如 removeHeaders("irc.*"))移除 camel-irc 控制头部,并在 irc: 生产者之前从可信来源设置目标。

免责声明

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

下载工具
属性值
组件camel-irc
受影响类org.apache.camel.component.irc.IrcProducer 读取 IrcConstants.IRC_SEND_TO ("irc.sendTo")
CWECWE-20 (输入验证不当) / CWE-74 (注入)
影响将出站 IRC 消息重定向到攻击者指定的频道/昵称(外泄、冒充)
前提条件存在将 HTTP 消费者桥接到 irc: 生产者的路由;当消费者未认证时
受影响版本从 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-23629 (PR apache/camel#23594)
发现者Yu Bao (PayPal)