关键漏洞信息 漏洞概述 漏洞名称: Authlib: JWS/JWT accepts unknown crit headers (RFC violation → possible authz bypass) CVE ID: CVE-2025-5942 严重性: 7.5/10 (高) 影响的组件和版本 库: Authlib (JWS verification) API: 受影响版本: 1.6.3 修复版本: 1.6.4 漏洞详情 问题描述: Authlib 的 JWS 验证接受声明未知关键头参数( )的令牌,违反了 RFC 7515 的“必须理解”语义。攻击者可以创建一个带有关键头(例如, 或 )的签名令牌,这些头被严格验证器拒绝但 Authlib 接受。在混合语言舰队中,这会导致分裂脑验证并可能导致策略绕过、重放或特权升级。 观察到的行为: 在 Authlib 1.6.3 中,当一个损坏的 JWS 包含一个保护头与 和一个 对象,或 与一个未知参数时,Authlib 验证签名并返回有效载荷而不会拒绝令牌或强制执行安全语义。 影响 跨异构舰队的影响: 一个严格的 ingress 网关(如 Nimbus/Vault)会拒绝一个令牌,但一个宽容的 Python 微服务(如 Authlib)会接受同一个令牌。这种分裂脑接受行为绕过了预期的安全策略,并可能启用重放或特权升级,如果 携带绑定或策略信息。 修复建议 推荐修复措施: - 在验证期间强制执行 : 拒绝列出任何未明确理解和强制执行的关键参数的令牌。 - 提供一个白名单机制来识别已知的关键参数并验证其语义(例如,强制执行 绑定,当它存在并列在 中)。