CVE-2026-53913
Apache Camel Keycloak:KeycloakSecurityPolicy 仅在其角色和权限检查中验证 bearer 访问令牌,因此在默认配置下令牌从未被验证,任何非空 bearer 值都会被接受。
- 已发布
- 2026年7月6日
- 已更新
- 2026年7月7日
- 分配 CNA
- apache
- 观察到的证据
- 2026年8月7日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H低 · 未来 30 天
- 百分位
- 63.3%
- 型号日期
- 2026年9月21日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
# Apache Camel Keycloak 组件中的认证不当、关键功能缺少认证及未安全失败(“开放失败”)漏洞 camel-keycloak 的 KeycloakSecurityPolicy 通过运行 KeycloakSecurityProcessor.beforeProcess() 来保护路由,该方法依次执行三项检查:它拒绝未携带访问令牌的请求,然后——仅当 requiredRoles 非空时——验证角色,并且——仅当 requiredPermissions 非空时——验证权限。对 Bearer 访问令牌的实际加密验证(本地 JWT 的签名、签发者和过期时间,或令牌内省的活动状态和签发者)仅在那些角色和权限检查内部执行。KeycloakSecurityPolicy 默认将 requiredRoles 和 requiredPermissions 设为空——这是文档中所述的“基本设置”——因此以这种方式配置的路由会跳过角色和权限检查,访问令牌因此永远不会被验证。令牌存在性检查仍会拒绝缺失的令牌,但无效的令牌会被接受:Authorization: Bearer 头中的任何非空值——包括任意字符串或伪造的、未签名的 JWT——都能通过该策略,请求会到达受保护的路由,且不进行签名、签发者或过期时间检查,也不会向 Keycloak 发起请求。由于 allowTokenFromHeader 默认为 true,令牌会从入站请求头中读取。因为将路由置于此策略之后的通常原因是该路由执行服务器端工作,所以该绕过会导致未认证访问该工作;当受保护的路由转发到能够执行代码的生产者时,可能导致未认证的远程代码执行。此缺陷与 CVE-2026-23552 无关:该问题涉及签发者声明,并通过在验证例程中添加检查来修复,但此处默认配置下根本不会到达验证例程,因此该缺陷仍然存在。此问题影响 Apache Camel:4.15.0 至 4.18.3 之前,4.19.0 至 4.21.0 之前。建议用户升级到修复该问题的 4.21.0 版本。如果用户处于 4.18.x 发布流,则建议升级到 4.18.3。对于无法立即升级的部署,请在每个 KeycloakSecurityPolicy 上配置非空的 requiredRoles 或 requiredPermissions,以便执行令牌验证路径;在预期不会从请求头获取令牌的情况下,将 allowTokenFromHeader 设为 false;或在策略之前于框架层执行令牌验证。
来源
1针对 CVE-2026-53913(Apache Camel camel-keycloak)的 PoC 复现器:KeycloakSecurityPolicy 在 Basic Setup 中默认放行(fail open)——当未配置必需的 roles/权限时,token 永远不会被验证,因此任何伪造/垃圾 bearer token 都能绕过身份验证(未认证 RCE)。已在 4.18.3/4.21.0 中修复。
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。