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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-84181 — 可运行的 Spring Boot 和 Quarkus 概念验证,复现 Apache Camel camel-shiro 的 thread-bound-subject 认证绕过漏洞,并包含受影响版本与已修补版本的对照。 | Kitploit
工具/GitHubGitHub/oscerd/cve-2026-84181
防御工具漏洞分析漏洞利用Web应用程序漏洞利用身份验证学习与教育
GitHuboscerd/cve-2026-84181

CVE-2026-84181

可运行的 Spring Boot 和 Quarkus 概念验证,复现 Apache Camel camel-shiro 的 thread-bound-subject 认证绕过漏洞,并包含受影响版本与已修补版本的对照。

查看仓库
319小时24分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-84181 — camel-shiro:通过线程绑定的 subject 实现认证绕过

针对 Apache Camel 漏洞的可运行概念验证复现程序:当已绑定到当前线程的 Shiro Subject 携带的主体(principal)与传入的 exchange 相同时,Shiro 安全处理器会跳过凭据验证。由于承载 Camel exchange 的线程来自线程池并在多个 exchange 之间复用,先前一次已认证的 exchange 遗留绑定的 subject 可能满足后续一次自身未提供任何有效凭据的 exchange 的检查——后续 exchange 上的密码从未被验证。攻击者只需发送一个请求,指定一个当前正在使用中的主体即可。

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

两个模块均演示了受影响以及修复后的行为。

演示内容

一条路由由使用 alwaysReauthenticate=false 构建的 ShiroSecurityPolicy 保护——这是文档中记载的模式,在该模式下,已认证的 subject 会被有意保留绑定到(池化、复用的)工作线程上,跨越多个 exchange。漏洞利用驱动程序在同一个 HTTP 工作线程内按顺序运行两个 exchange:

  1. 由 ringo 发起的合法请求,使用正确的密码 starr——它通过认证,并将 Shiro subject 绑定到该线程(正如繁忙服务中先前一次已认证请求所做的那样);
  2. 一个攻击者请求,指定同一用户 ringo,但使用错误的密码 not-starr,在同一个线程上。
  • 受影响:第二个 exchange 被接受,未验证其密码——它借用了步骤 1 遗留在该线程上的 subject——并到达受保护的逻辑。认证绕过。
  • 已修复:第二个 exchange 的凭据会被独立验证,并以 AuthenticationException 拒绝,即使同一用户仍绑定在该线程上。
# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: wrong password reaches protected logic; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-84181-shiro-auth-bypass-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wrong password rejected; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.15.0): wrong password reaches protected logic
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wrong password rejected

漏洞摘要

属性值
组件camel-shiro(ShiroSecurityProcessor.authenticateUser)
CWECWE-287(身份验证不当)
严重程度中危
攻击向量一个请求指定了当前绑定到被复用的工作线程的主体,且自身不携带任何有效凭据
影响身份验证绕过:未认证的请求被当作已绑定的主体接受;其密码从未被验证
受影响版本从 4.0.0 起至 4.18.5 之前,从 4.19.0 起至 4.22.1 之前
修复版本4.18.5、4.22.1、4.23.0
JIRACAMEL-24439
致谢Claude Security Scan Tool

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

修复方案

ShiroSecurityProcessor.authenticateUser 不再在线程绑定的 subject 已携带相同主体时跳过登录。此前的代码在 currentUser.isAuthenticated() && username.equals(currentUser.getPrincipal()) 处短路返回;用户名匹配并不能说明 本次交换所提交的密码是否正确。该处理器现在会在每一次交换时调用 currentUser.login(token), 因此所提交的凭据始终会被验证。alwaysReauthenticate 仍然控制 subject 的 rememberMe 有效期, 但它不再决定是否检查密码。

无法升级时的缓解措施

确保在每次交换结束时从线程中清除 Shiro subject(这样后续交换就不会继承任何 subject)——例如使用一个 onCompletion/处理器来调用 Shiro 的 ThreadContext.unbindSubject()——直到你能够升级为止。

免责声明

本仓库出于教育和防御目的发布:帮助 Apache Camel 用户理解该漏洞、确认自己是否受影响,并验证升级能否解决该问题。 此处的用户、密码和密钥均为无实际作用的本地测试数据。请勿将本材料用于你并不拥有或运营的系统。

下载工具