Impact
Centrifugo, an open‑source scalable real‑time messaging server, validates JSON Web Tokens (JWT) using a key chosen by its identifier. Because the server’s JWKS cache and singleflight lookup were keyed only on the token header’s key identifier, a key that is valid for one allowed issuer could be reused to validate a JWT issued by another, allowing an attacker to forge credentials and bypass authentication controls. The flaw is a key‑reuse weakness (CWE‑347) that can grant unauthorized access or impersonation, potentially enabling an attacker to hijack sessions or transmit messages under a false identity.
Affected Systems
All Centrifugo releases earlier than v6.8.1 from the vendor centrifugal that employ client.token.jwks_public_endpoint or client.subscription_token.jwks_public_endpoint, including the internal jwks/cache.go and jwks/manager.go modules, are affected. Users running Centrifugo 6.8.0 or older are at risk until the version 6.8.1 fix is deployed.
Risk and Exploitability
The CVSS score of 8.2 indicates high severity, but the EPSS score of less than 1 % signals that current exploitation is unlikely. The vulnerability is not listed in the CISA KEV catalog, so no known widespread exploitation is reported. An attacker would need to provide a JWT from a compromised or malicious issuer that shares a key identifier with an allowed issuer; the server would then accept it, enabling unauthorized access across issuers.
OpenCVE Enrichment
Github GHSA