Keycloak 26.7.5 安全修复与缺陷更新

涵盖 14 项安全修复、DCR 协议切换弱点与 Quarkus 3.33.4 升级

UniMgr 技术编辑 来源:技术源整理 30
Keycloak 26.7.5 安全修复与缺陷更新

Keycloak 26.7.5 于 2026-09-30 发布,含 14 项安全修复(CVE-2026-16103 等)、2 项弱点(DCR 协议切换、check-licenses.sh shell 注入)、Quarkus 3.33.4 升级,并修复 Infinispan 滚动重启 ISPN000136、token-exchange 对禁用客户端持续发 token 等问题。

技术要点

Keycloak 26.7.5 于 2026-09-30 发布,属于 26.7.x 系列。发布说明在开头提示:升级前需先查阅迁移指南以获取完整变更列表。本次更新分为安全修复、弱点、增强与缺陷四类。

配图
配图

安全修复共 14 项,覆盖 OIDC、SAML、authorization-services、token-exchange 及多项第三方依赖:

  • #50996(CVE-2026-16103):CVE-2026-9798(Keycloak CIBA brute-force lockout bypass at token redemption)的不完整修复。
  • #51278(CVE-2026-18206):Client policy source-host wildcard domains match non-subdomain suffixes。
  • #51280(CVE-2026-18203):Group policy child-extension matches sibling group path prefixes。
  • #51281(CVE-2026-18207):Source-group condition matches duplicate group names and can skip negative-logic enforcement。
  • #51284(CVE-2026-18208):Inactive out-of-audience introspection responses can include a signed JWT claim。
  • #51285(CVE-2026-18211):Secure-client-uris localhost exception accepts localhost-prefixed attacker domains。
  • #51781(CVE-2026-18217):SAML Redirect Binding Parameter Pollution。
  • #52531(CVE-2025-66021):com.googlecode.owasp-java-html-sanitizer:owasp-java-html-sanitizer dependencies。
  • #52692(CVE-2026-89298):Confidential client secret disclosed to view-clients role via Client Registration GET。
  • #52783(CVE-2026-88770):Device Authorization Grant issues tokens to brute-force-locked accounts(CVE-2026-9798 的 sibling)。
  • #52888(CVE-2026-84939):org.freemarker:freemarker。
  • #52972(CVE-2026-8798):org.bouncycastle:bc-fips dependencies。
  • #52974(CVE-2026-13505):org.bouncycastle:bc-fips dependencies。
  • #53074(CVE-2026-93999):Keycloak 26.7.2: token-exchange refresh continues issuing tokens for a disabled audience client。

弱点(Weaknesses)2 项:#51340(DCR: Registration access token allows protocol switch from OIDC to SAML)、#53024(check-licenses.sh: shell injection via source of dependency pom.properties)。

增强(Enhancements)1 项:#52357 Upgrade to Quarkus 3.33.4(dist/quarkus)。

缺陷(Bugs)数量较多,涵盖认证、存储、CI、organizations 等模块,代表性条目包括:#50903(username 字段缺少长度校验导致 /login-actions/authenticate 日志膨胀)、#51304(升级至 26.7.0 在 DB dump/restore 后因 getRealmsStream() 顺序非确定性触发 LazyInitializationException 崩溃)、#52088(新 Infinispan 节点在缓存组件就绪前成为 command target/coordinator,滚动重启时出现 ISPN000136 失败)、#52153(DEBUG 日志破坏持久化客户端会话锁定)、#52487(在 admin UI 管理 Identity Providers 现在需要 realm 中的 client roles)。

原理与背景

发布说明中每条条目都对应一个具体的设计动机或已暴露的问题,理解这些背景有助于判断升级优先级。

安全修复集中在身份认证与令牌签发链路。CIBA 与 Device Authorization Grant 都属于异步、离线的授权流程,其 brute-force lockout(暴力破解锁定)机制在 token redemption(令牌兑换)环节被绕过,攻击者可绕过锁定继续尝试,因此 #50996 与 #52783 需要补全锁定校验。Client policy 与 Group policy 是限制客户端与用户组行为的策略引擎,source-host 通配符、child-extension 匹配、source-group 条件若匹配范围过宽(匹配到非子域后缀、兄弟组路径前缀、重复组名),就会让本应被拦截的请求漏过负向逻辑(negative-logic)校验。

令牌与签名相关的修复则针对"不该签名的内容被签名"或"不该泄露的密钥被泄露"。Inactive out-of-audience introspection responses 本不应携带签名 JWT claim,Confidential client secret 不应通过 Client Registration GET 暴露给 view-clients role,token-exchange refresh 不应为已禁用的 audience client 持续发放令牌——这些都直接关系令牌的可信度与密钥安全。

依赖项修复(owasp-java-html-sanitizer、freemarker、bouncycastle bc-fips)属于供应链安全,CVE 编号本身即说明上游存在已知风险;Quarkus 3.33.4 升级则带来运行时层面的更新。缺陷方面,#51304 与 #52088 都指向 Infinispan 集群在滚动重启期间的状态不一致:新节点在缓存组件就绪前就成为 command target/coordinator,导致 ISPN000136 失败,getRealmsStream() 顺序非确定性在 DB dump/restore 后触发 LazyInitializationException。

落地建议

针对这类补丁版本,建议按以下通用做法推进。

先评估升级影响。发布说明明确要求升级前查阅迁移指南,因此应把迁移指南作为必读材料,对照本次变更条目梳理自身依赖的协议与模块(如 OIDC、SAML、token-exchange、Infinispan),确认受影响功能是否在本环境启用。

按风险确定升级顺序。安全修复与弱点应优先于普通缺陷;涉及令牌签发、密钥泄露、锁定机制绕过的安全项尤其需要及时评估是否已在线上被利用。对使用 Infinispan 集群滚动重启的环境,升级前后应重点观察 ISPN000136 与 LazyInitializationException 相关日志,必要时在重启流程中增加缓存组件就绪的等待与校验。

完善测试与监控。素材中大量 flaky test 与 CI 失败(如 Maven cache 未命中、毫秒级时序、runner AMI 失效)提示:自动化测试的稳定性依赖环境确定性。落地时应保证测试依赖缓存命中、避免硬编码端口与时间敏感断言,并在日志中注意格式字符串匹配,防止参数静默丢失。

涉及 admin UI 权限(如管理 Identity Providers 需要 realm 中的 client roles)、事件监听器行为等变更,应在变更窗口内同步通知相关运维与开发团队,并在升级后回归关键认证流程。

技术分享更多资讯

查看全部
布里吉斯游戏引擎更新:波次与技能机制重构
技术分享

布里吉斯游戏引擎更新:波次与技能机制重构

游戏开发者布里吉斯发布最新技术更新,重点重构了敌人波次生成逻辑与干员技能释放机制。此次更新涉及底层数据配置与快照保存系统的优化,为后续数据库更新及前端开发奠定基础。开发者透露将学习Unity引擎技术,并计划未来转向自研引擎,标志着项目从原型向工业化开发的重要转型。

AI 编辑 3
Agent 上下文治理全景原则篇:构建目标导向的智能判断体系
技术分享

Agent 上下文治理全景原则篇:构建目标导向的智能判断体系

本文聚焦 Agent 上下文治理的核心原则,从目标、依据、边界、记忆、探索及进展六个维度,深入剖析上下文机制如何辅助智能体围绕既定任务进行持续且精准的判断。通过明确各机制职责,旨在提升 Agent 在复杂环境下的任务执行效率与稳定性,为构建更可靠的 AI 系统提供理论框架与实践指导。

AI 编辑 3
Python 3.13 引入 Queue.shutdown 解决异步退出难题
技术分享

Python 3.13 引入 Queue.shutdown 解决异步退出难题

Python 3.13 正式引入 Queue.shutdown 方法,旨在解决异步消费者在收到停止信号后难以优雅退出的长期痛点。此前,开发者需手动处理取消信号,常导致部分已取出的任务处理中断或资源泄漏。新特性简化了异步队列的生命周期管理,提升了并发编程的可靠性与代码简洁性,对 Python 异步生态具有积极意义。

AI 编辑 4
游戏团队管理进阶:从被动救火到主动规划
技术分享

游戏团队管理进阶:从被动救火到主动规划

本文基于对游戏团队管理实践的深入思考,指出许多管理者陷入“解决问题”的时间陷阱。通过定期复盘日程,作者发现大量精力耗费在应对架构、需求及人员冲突等突发状况上。文章主张管理者应转变思维,从被动响应转向主动发现潜在问题,优化团队效能,避免陷入低效的救火循环,为游戏行业团队管理提供新的视角。

AI 编辑 3