CVE-2026-97468: Apache CXF: Authentication bypass via weak cache keys for validated STS tokens
Apache CXF cached validated STS tokens under a 32-bit hash, enabling authentication bypass.
Auth bypass via weak STS token cache keys in Apache CXF
Apache CXF's STSTokenValidator and Security Token Service cached validated security tokens under a non-cryptographic 32-bit Java hash and treated a cache hit as proof the token had already been checked. An attacker who can present a UsernameToken or a self-signed SAML assertion whose hash collides with a cached entry is accepted without password validation, signature trust checks, or a call to the STS. That can authenticate the attacker as another user and, via STS validation or renewal, yield STS-signed tokens for that identity. Deployments that use CXF STS token validation or this cache and have not upgraded to 4.2.4, 4.1.9, or 3.6.13 are affected. There is no known public proof of concept and no report of exploitation in the wild; the issue is not on the CISA KEV list and has not yet been scored.
What to do: Upgrade Apache CXF to 4.2.4, 4.1.9, or 3.6.13 (or a later release in those lines). Until then, treat cached STS and UsernameToken/SAML validation as untrustworthy: disable or bypass the validated-token cache if your deployment allows it, require fresh password and signature checks, and review authentication logs for unexpected identities or STS-issued tokens.
| Product | Affected |
|---|---|
| Apache Software Foundation Apache CXF | Versions before the fixes 3.6.13, 4.1.9, and 4.2.4 (STSTokenValidator and Security Token Service token cache) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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.
Apache CXF cached validated STS tokens under a 32-bit hash, enabling authentication bypass.
Today 840 readers · 1.1K views · 843 reads · all time 159K views