天下漏洞,尽知其名
HIGH 重点关注

CVE-2026-97468 Apache CXF 令牌验证绕过漏洞

影响攻击者可绕过令牌校验冒充他人身份

AI 研判

Apache CXF 的 STSTokenValidator 与安全令牌服务(STS)在缓存已验证令牌时,使用了非加密的 32 位哈希(Java Arrays.hashCode/hashCode()),并将缓存命中直接视为令牌已通过验证。攻击者可构造哈希碰撞的令牌,从而绕过密码校验、签名信任验证或 STS 调用。

影响范围

Apache CXF

Apache CXF 受影响版本,官方建议升级至 4.2.4、4.1.9 或 3.6.13 修复;具体受影响版本范围暂无公开信息。

漏洞详情

漏洞类型为身份验证绕过。成因是缓存键采用非加密的 32 位哈希,碰撞概率高且可被构造,缓存命中即被当作验证通过。攻击者可提交 UsernameToken 或自签名 SAML Assertion 等令牌,使其哈希与缓存条目碰撞,从而在未通过密码或签名校验的情况下被接受,并可能通过 STS 获取对应身份的签名令牌。

利用条件与风险

利用前提是目标启用了 STSTokenValidator/STS 令牌缓存且攻击者能提交令牌;实战中可导致身份冒用与令牌伪造,风险较高。

修复建议

官方修复方案为升级至 4.2.4、4.1.9 或 3.6.13。临时缓解措施暂无公开信息,可考虑禁用相关令牌缓存或加强令牌校验。

原始情报

Apache CXF’s STSTokenValidator and Security Token Service (STS) cached validated security tokens under a non-cryptographic 32-bit hash of the token (Java Arrays.hashCode/hashCode()), and treated a cache hit as proof that the presented token had already been validated. An attacker could craft a token (for example a UsernameToken or a self-signed SAML Assertion) whose hash collides with a cached entry. The token would then be accepted without password validation, signature trust verification or a call to the STS. This could let the attacker authenticate as another user and, through STS token validation or renewal, obtain STS-signed tokens for that identity.
Users are recommended to upgrade to versions 4.2.4 or 4.1.9 or 3.6.13, which fix this issue.