Description
Centrifugo is an open-source scalable real-time messaging server. Prior to 6.8.1, Centrifugo dynamic JWKS endpoint verification could reuse a key for one allowed issuer to verify a JWT for another allowed issuer because the JWKS cache and singleflight lookup were keyed only by JWT header kid, not by the resolved JWKS endpoint, issuer, audience, or trust-domain namespace, affecting client.token.jwks_public_endpoint, client.subscription_token.jwks_public_endpoint, internal/jwks/cache.go, and internal/jwks/manager.go. This issue is fixed in version 6.8.1.
Published: 2026-07-16
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

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.

Generated by OpenCVE AI on July 31, 2026 at 01:24 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Centrifugo to version 6.8.1 or later to apply the corrected key‑caching logic
  • Test the service by issuing valid JWTs from separate issuers using distinct key identifiers to confirm that cross‑issuer authentication is no longer possible
  • Verify that each issuer’s JWKS endpoint and key identifiers are unique in the configuration to prevent accidental key collisions and reduce the chance of future key‑reuse problems

Generated by OpenCVE AI on July 31, 2026 at 01:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-g6vg-wj8f-48cj Centrifugo's dynamic JWKS key cache keyed only by `kid` allows cross-issuer JWT authentication bypass
History

Fri, 17 Jul 2026 12:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 16 Jul 2026 20:45:00 +0000

Type Values Removed Values Added
First Time appeared Centrifugal
Centrifugal centrifugo
Vendors & Products Centrifugal
Centrifugal centrifugo

Thu, 16 Jul 2026 19:45:00 +0000

Type Values Removed Values Added
Description Centrifugo is an open-source scalable real-time messaging server. Prior to 6.8.1, Centrifugo dynamic JWKS endpoint verification could reuse a key for one allowed issuer to verify a JWT for another allowed issuer because the JWKS cache and singleflight lookup were keyed only by JWT header kid, not by the resolved JWKS endpoint, issuer, audience, or trust-domain namespace, affecting client.token.jwks_public_endpoint, client.subscription_token.jwks_public_endpoint, internal/jwks/cache.go, and internal/jwks/manager.go. This issue is fixed in version 6.8.1.
Title Centrifugo: Dynamic JWKS key cache keyed only by `kid` allows cross-issuer JWT authentication bypass
Weaknesses CWE-347
References
Metrics cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:N'}


Subscriptions

Centrifugal Centrifugo
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-17T11:13:39.150Z

Reserved: 2026-06-02T18:30:51.283Z

Link: CVE-2026-49998

cve-icon Vulnrichment

Updated: 2026-07-17T11:13:34.674Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T01:30:05Z

Weaknesses
  • CWE-347

    Improper Verification of Cryptographic Signature